آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

تعیین رنگ آیتم های لیست ویو و ثابت ماندن آن در هنگام اسکرول

SaeiD-as  10 سال پیش  10 سال پیش
0 0

سلام دوستان

در داخل لیست ویو میخوام هنگامی که یک آیتم نشون داده میشه به یک رنگ خاص که رندم انتخاب کردم در بیاد و در بار های بعد که اسکرول میشه و دوباره نشون داده میشه رنگش ثابت بمونه، رنگ رندم رو در داخل متد fill تعیین کردم و این باعث میشه هر بار که اسکرول میشه به یک رنگ دیگه در بیاد!! بنظرتون راه حلش چیه؟

احتمالا با یه شرط if درست میشه اما نمیدونم شرطشو چی بنویسم

+2 0
خب شما دارید رنگ رندوم میسازید پس هر بار که لیست رو بالا پایین ببرید رنگ های جدید تولید میشه ، باید یک خصیصه مثل پوزیشن رو در نظر بگیرید و بر اساس اون رنگ تولید کنید مثلا بگئی میزان رنگ در پوزیشن فعلی ضرب بشه. (10 سال پیش)
+1 0
میتونید توی یک آرایه < بعد از اینکه بهش رنگ دادید < position رو ذخیره کنید < دفعه بعدی که قراره به ایتم رنگ بدید < چک کنید اگر position از قبل وجود داره ، بهش رنگ جدید ندید (10 سال پیش)
0 0
@محمدحسین عزیز، هر کدوم از آیتم ها یک پوزیشن بخصوص داره، نمیتونم از همون پوزیشن استفاده کنم و بگم اگه آیتم مد نظر قبلا نمایش داده شده بود دیگه براش رنگ تولید نکن؟ (10 سال پیش)
+1 0
همین کاری که Criss هم گفته انجام بدید به نتیجه میرسید و مشکلی در تولید رنگ نیست ینی باعث کندی نمیشه . (10 سال پیش)
0 0
مرسی منم نگران کندی بودم، من آرایه رو ایجاد کردم و داخل متد fill گفتم اگه قبلا آیتم مد نظر اسمش داخل آرایه رفته دیگه براش رنگ تولید نکن، تا اینجاش درست شد، اما من از همین لیست ویو داخل یه اکتیویتی دیگه هم استفاده کردم و اونجا sort رو عوض کردم، هنگامی که اون اجرا میشه دیگه رنگ نمیگیرن چون داخل آرایه هستن، کجا آرایه رو خالی کنم؟ (10 سال پیش)
+2 0
اگر آرایه استاتیک هست زمانی که اکتیویتی بسته میشه خالیش کن ولی اگر استاتیک نیست خودش خالی میشه . (10 سال پیش)
+1 0
خب اگر از posotion نمیتونید استفاده کنید < در ابتدای شروع لیست ویو باید همه ی آیتم ها یک رنگ داشته باشند < بعد با استفاده از چک کردن رنگ ثابت < به اونهایی که رنگ اولیه رو دارند < رنگ جدید بدید < آرایه هم نیاز ندارید در این حالت (10 سال پیش)
0 0
من بجای اکتیویتی از فرگمنت آموزش خودت استفاده کردم، زمانی که بین تب ها جابجا میشم دیگه رنگ ها لود نمیشن چون آرایه رو خالی نکردم، داخل کجای فرگمنت آرایه رو خالی کنم؟ FragmentHome یا pagerAdapter؟ (10 سال پیش)
0 0
مرسی Criss عزیز، فک کنم این راه که گفتی بهتر از آرایه باشه، من داخل یک ImageView رنگ دادم، حالا داخل شرط if چی بنویسم؟ getResources رو امتحان کردم نشد (10 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Criss  10 سال پیش
+1 0

برای گرفتن رنگ یک View نیاز به API 11 هست < getColor()

TextView txt = (TextView) findViewById(R.id.txt);
txt.setBackgroundColor(Color.RED);
  ColorDrawable viewColor = (ColorDrawable) txt.getBackground();
int colorId = viewColor.getColor();

Log.i("LOG", "" + colorId); //-65536

فکر کنم برای API های زیر 11 باید از لایبری ساپورت استفاده کنید < اینو دیگه باید از محمد حسین بپرسید <

0 0
مرسی Criss جان (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .