PDA

View Full Version : ویو داینامیک



sonicuser
پنج شنبه 15 بهمن 1394, 14:55 عصر
سلام دوستان کسی میدونه مشکل این کد چیه؟؟

حلقه 3 بار اجرا میشه اما فقط به لایوتم 1 ویو اضافه میشه


public void onBindViewHolder(ViewHolder holder, int position) {
Order.OrderServices cur = orderServices.get(position);


for (Order.OrderSenders order :cur.OrderSenders) {
View ll = inflater.inflate(R.layout.senderlini, null,false);
holder.senderli.addView(ll);

}


}

msroid
پنج شنبه 15 بهمن 1394, 17:01 عصر
سلام

من نمیدونم دقیقا میخوای چیکار کنی اما فکر نمیکنم توی onBindView نیازی به حلقه باشه چون خودش به تعداد عناصر ورودی که بهش میدی تکرار میشه و view میسازه و فقط نیازه که شما اطلاعات رو بهش بدی.

sonicuser
پنج شنبه 15 بهمن 1394, 20:33 عصر
سلام درسته دوست عزیز این متد خودش به تعداد عناصر میسازه اما من به این متد یک لیست پاس میدم که توی او لیست یک لیست دیگه وجو داره و من میخوام توی اون آیتمی که میسازه از لیست اولی ، به تعداد لیست داخلی اون هم یک عملی انجام بشه و فیلداش اضافه بشه .حالا این حلقه میچرخه ها ولی به لینیر لایوتی که توی holder هست فقط اولین آیتم لیست داخلی اضافه میشه و بقیش نمایش داده نمیشه

msroid
پنج شنبه 15 بهمن 1394, 22:07 عصر
خب من نمیدونم دقیقا شما چه کاری داری انجام میدی و این متد رو برای کجا استفاده میکنی و ساختار کلی layoutی که استفاده کردی چجوریه و اینکه تا حالا من ندیدم توی این متد همچین کاری بکنن.
مثلا من میخوام یه لیست ویو رو پر بکنم از یه layout اختصاصی استفاده میکنم برای سطرهای اون. مثلا توی این layout میتونه چک باکس باشه متونه چند تا تکست ویو باشه میتونه imageview باشه و...
اما همه اینا فقط یکبار نیاز داره که اون view رو inflate کرد.
حالا در نظر بگیر من دارم یه ArrayList از نوع یه کلاس مثلا Test بهش پاس میدم. این کلاس تست خودش شامل چندین آیتم میشه اما بازم فقط یکبار برای هر کلاس Test عمل inflate صورت میگیره و از حلقه استفاده نمیشه.
شایدم همچین کاری بشه انجام داد اما اطلاعات من کامل نیست امیدوارم بقیه دوستان بتونن بهتر راهنمایی کنن.