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

تغیر رنگ آیتم های لیست ویو به صورت یکی در میان 

سپهر  12 سال پیش  12 سال پیش
0 0

چطور میتوان به جای قرار دادن divider در لیست ویو ،  رنگ پس زمینه آیتم ها رو به صورت یکی در میان سیاه و سفید کرد که جدا شدنشون مشخص بشه

 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
Spirit  12 سال پیش
+3 0

بسیار سادس ، در متد getView آداپتر متغیری به اسم position دارین که کافیه اون رو تقسیم بر دو بکنید اگر باقیمانده صفر بود رنگ رو مثلا سبز کنی ، اگر باقیمانده هم غیر از صفر بود رنگ رو قرمز.

if (position % 2 == 0) {
// set color #1
} else {
// set color #2
}
0 0
اگر بخواهیم رندوم رنگ‌ها رو انتخاب کنیم چی؟ (12 سال پیش)
0 0
پس این position ها به این دردا میخوره ، من هنوز درک درستی از لیست ویو ندارم ممنون از کمکت ، عالی بود (12 سال پیش)
0 0
@ali فکر میکنم در اون صورت باید یک آرایه ای از رنگها بسازی و با تابغ math.random شماره های متفاوتی از آرایت به این تابغ بدی (12 سال پیش)
0 0
@sp!r!t یه مشکلی هست اونم این که زمانی که برنامه اجرا میشه درسته یکی در میون رنگا عوض میشه ولی تا اسکرول میخوره بهم میریزه (12 سال پیش)
0 0
از viewHolder استفاده میکنی؟ (12 سال پیش)
0 0
بله از viewHolder و از روش استاد adapter ساختم (12 سال پیش)
0 0
اگه اشتباه نکنم مشکلتون حل شد ، درسته؟ (12 سال پیش)
0 0
نه حل نشده هنوز همون طور هست که وقتی سریع اسکرول میکنم جابجا میشه (یعنی ممکنه بعضی آیتم ها پشت سر هم یک رنگ شده باشه) (12 سال پیش)
پاسخ به سوال 
سپهر  12 سال پیش
0 0

این کدم هست

 

     @Override
public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder;

StructGame item = getItem(position);
if (convertView == null) {

convertView = G.inflater.inflate(R.layout.list_row, parent, false);
holder = new ViewHolder(convertView);
if (position % 2 == 0) {
convertView.setBackgroundColor(Color.parseColor("#f8f8f8"));

} else {
convertView.setBackgroundColor(Color.parseColor("#ffffff"));
}
convertView.setTag(holder);

} else {
holder = (ViewHolder) convertView.getTag();
}

holder.fill(this, item, position);
return convertView;
}
0 0
اون کدها رو بیار خارج از شرط بالای متد holder.fill بزار ببین چی میشه (12 سال پیش)
0 0
درست شد :) ممنونم ازت خیلی (12 سال پیش)
0 0
خدا رو شکر ، پس این کد رو هم لطفا اصلاح کن برای آیندگان :) (12 سال پیش)
پاسخ به سوال 
سپهر  12 سال پیش
+3 0

پاسخ نهایی

 @Override
public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder;

StructGame item = getItem(position);
if (convertView == null) {

convertView = G.inflater.inflate(R.layout.list_row, parent, false);
holder = new ViewHolder(convertView);

convertView.setTag(holder);

} else {
holder = (ViewHolder) convertView.getTag();
}
if (position % 2 == 0) {
convertView.setBackgroundResource(R.drawable.artists_list_background_alternate);

} else {
convertView.setBackgroundResource(R.drawable.artists_list_backgroundcolor);
}
holder.fill(this, item, position);
return convertView;
}

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