পটভূমি তালিকার ভিউ স্ক্রোল করার সময় কালো হয়ে যায়


427

আমি একটি নির্দিষ্ট তালিকা তৈরি করেছি যা বাম দিকে চিত্র এবং ডানদিকে কিছু পাঠ্য সহ প্রতিটি সারি সহ একটি স্ক্রোলযোগ্য তালিকা তৈরি করতে নিম্নলিখিত উপাদানগুলির বাইরে রয়েছে:

একটি "মূল" লেআউট দিয়ে শুরু করতে:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:background="#C8C8C8"
    >
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>
    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:drawSelectorOnTop="false"
        android:divider="#C8C8C8"
        android:background="#C8C8C8"/>
</LinearLayout>

এবং তারপরে তালিকার ভিউয়ের মধ্যে আমি নীচের "সারি" আইটেমটি রাখি:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:background="@drawable/bg_row"
>
    <ImageView
        android:layout_width="wrap_content"
        android:paddingLeft="10px"
        android:paddingRight="15px"
        android:paddingTop="5px"
        android:paddingBottom="5px"
        android:layout_height="wrap_content"
        android:src="@drawable/bg_image"
    />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="5px"
        android:paddingBottom="5px"
        android:textSize="16sp"
        android:textColor="#000000"
        android:layout_gravity="center"
        android:maxHeight="50px"/>
</LinearLayout>

যতক্ষণ না পর্দা স্থিতিস্থায়ীভাবে প্রদর্শিত হয় (কোনও গতিবিধি হিসাবে না) এটি সঠিকভাবে প্রদর্শিত হবে, তবে আমি যখন তালিকাটির মাধ্যমে স্ক্রোলিং শুরু করব তখন সারি-আইটেমের পটভূমি (কোডে প্রদর্শিত "আইকন") হবে সঠিকভাবে দেখানো হয়েছে তবে "রুট" লেআউটের পটভূমিটি সম্পূর্ণ কালো হয়ে যাবে ... যখন স্ক্রোলিংটি থামবে তখন বেশিরভাগ সময় তার রঙ ফিরে আসবে ... আমি পরীক্ষার সাথে সাথে আমি TextViewসেই মূল-উপাদানটিতে একটি যুক্ত করেছি একই পটভূমির সাথে, তালিকাটি যখন স্ক্রোল করা থাকবে তখন এটি রঙটি আটকে রাখবে ... কেন এমন হচ্ছে এমন কোনও ধারণা, এবং কীভাবে এটি সমাধান করবেন?

উত্তর:


771

উপর একটি বৈশিষ্ট্য যোগ ListViewট্যাগ

android:cacheColorHint="#00000000" // setting transparent color

আরও তথ্যের জন্য এই ব্লগ চেক করুন


23
। this.getListView () setCacheColorHint (0); বিন্যাস থেকে আমি রঙ সেট করতে পারিনি। তবে আমি উপরের কোডটি দিয়ে এটি পরিচালনা করেছিলাম। আমি তালিকা ক্রিয়াকলাপের 'অনক্রিট' এ এই কোডটি ব্যবহার করেছি। আশা করি এই তথ্যগুলিও সহায়তা করবে।
ডিজো ডেভিড

70
android:cacheColorHint="#0000"আপনি যদি জিরোকে ভয় পান তবে তাও কাজ করে।
অ্যান্ড্রু

136
অথবা android:cacheColorHint="@android:color/transparent"আপনি যদি সংখ্যাগুলি থেকেও ভয় পান :)
ডুলে

2
@ অ্যান্ড্রয়েড: রঙ / স্বচ্ছ সম্ভবত একটি একক বিট সেট থাকার যুক্ত বোনাস রয়েছে। একটি বাগ রয়েছে যেখানে আপনি কয়েকটি ফোনে 0 পাস করলে স্বচ্ছতা কাজ করবে না। কৌশলটি 1 বিট সেট করা হয়।
টমাস ডিগানান

63

এটি খুব সহজ আপনার লেআউট ফাইলটিতে এই লাইনটি ব্যবহার করুন:

android:scrollingCache="false"

এটার মত:

<ListView 
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollingCache="false"
/>

2
এটি কাজ করে কিন্তু আমি মনে করি না এটা করতে স্মার্ট না: stackoverflow.com/questions/15570041/scrollingcache
Morten Holmgaard

1
আমার একটি কেস হয়েছিল যার মধ্যে অ্যান্ড্রয়েড: ক্যাশে কালারহিন্ট = "# 00000000" কাজ করেনি, তবে অ্যান্ড্রয়েড: স্ক্রোলিংক্যাচ = "মিথ্যা" করেছে। ধন্যবাদ।
ইয়ার

27

আপনি এটির মতো ব্যবহার করতে পারেন:

list.setCacheColorHint(Color.TRANSPARENT);
list.requestFocus(0);

10

android:id="@android:id/list"
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"
android:divider="#C8C8C8"
android:background="#C8C8C8"
android:cacheColorHint="#00000000"/>

7

এই সমস্যার জন্য আমাদের কাছে প্রচুর বিকল্প রয়েছে, আপনি প্রোগ্রামিং এর মতো পটভূমিটিকে স্বচ্ছ হিসাবে সেট করতে পারেন

yourlistview.setCacheColorHint(Color.TRANSPARENT); 

বা এক্সএমএল মাধ্যমে

android:cacheColorHint="@android:color/transparent"


5

আমি ছবিগুলি ব্যবহার করছি listViewএবং এটি কখনও কখনও স্যামসঙ এস 4 এ এমনকি স্ক্রোলিং না করে কালো হয়ে যায়। এটি একটি বোকা ভুল ছিল যা আমি অ্যাডাপ্টারে করেছি I আমি এই সমস্যাটি সমাধান করার জন্য আমার দৃষ্টিভঙ্গিটি বাতিল করে দিলাম

 @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            Holder holder;
            convertView = null; // convert view should be null
            if (convertView == null) {
                holder = new Holder();
                convertView = inflater1.inflate(R.layout.listview_draftreport_item, null);
             } 
        }

4

এই প্রশ্নের উত্তর বরাদ্দ আছে কিন্তু আজ আমি বুঝতে পেরেছি যে এই প্রশ্নের এখনও একটি সমালোচনামূলক তথ্য নেই।

আছে দুই সম্ভাব্য সমাধান সমস্যার জন্য, উভয় কাজ কিন্তু প্রতিটি বিভিন্ন পরিস্থিতিতে ব্যবহার করা উচিত।


পদ্ধতি

ব্যবহার করুন android:cacheColorHintযখন আপনার ListViewএকটি আছে কঠিন রং পটভূমি।

<item name="android:cacheColorHint">@android:color/transparent</item>

ব্যাকগ্রাউন্ড হিসাবে android:scrollingCacheআপনার ListViewকোনও (জটিল) চিত্র থাকলে ব্যবহার করুন ।

<item name="android:scrollingCache">false</item>

বিঃদ্রঃ

যখন আপনার ListViewগা color় রঙের ব্যাকগ্রাউন্ড হবে তখন উভয় পদ্ধতিই কাজ করবে, তবে কেবল এটিই cacheColorHintকাজ করবে না । তবে scrolingCacheমসৃণ অ্যানিমেশন এবং তালিকাভিউ স্ক্রোল করার জন্য ব্যবহৃত একটি অপ্টিমাইজেশন পদ্ধতিটি বন্ধ করে দেওয়ার কারণে শক্ত রঙের পটভূমির জন্য পদ্ধতিটি ব্যবহার করার পরামর্শ দেওয়া হয় না ।

দ্রষ্টব্যটির জন্য নোট: scrolingCache মিথ্যাতে সেট করার অর্থ অগত্যা ListViewএর অ্যানিমেশন এবং স্ক্রোলিং ধীর হয়ে যাবে।




আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.