انجمن سایت کلیدستان



اضافه کردن ایتم ها به صورت یک یکی به لیست ویو سفارشی (Animation برای item ها)زمان کنونی: ۱۳۹۵/۰۹/۱۴، ۰۲:۱۷ ق.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: بنیامین خلیفه
آخرین ارسال: sinabelle
پاسخ 4
بازدید 1929

رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
اضافه کردن ایتم ها به صورت یک یکی به لیست ویو سفارشی (Animation برای item ها)

اضافه کردن ایتم ها به صورت یک یکی به لیست ویو سفارشی (Animation برای item ها)

#1
سلام دوستان.
من تقریبا بلدم که با لیست ویو کار کنم اما مشگلم رو الان توضیح میدم.
هنگامی که یک لیست ویو ساده میسازیم برای اضافه کردن ایتم ها به اون کافیه کد زیرو

کد پی‌اچ‌پی:
msgList.add("1"); 

وارد کنیم تا 1 به ایتم ما اضافه بشه مشگل من اینه که توی لیست ویو سفارشی نمیتونم به این صورت ایتم هارو اضافه کنم
چیزی که من میخوام مثل برنامه لاینه که پیام ها یکی یکی به انتهای اون اضافه بشه اگه بشه نمونه کدی ازش بزارید ممنون میشم
پاسخ

اضافه کردن ایتم ها به صورت یک یکی به لیست ویو سفارشی (Animation برای item ها)

#2
هیچکی جواب نداد مشگل منو یک لیست ویو سفارشی که بشه ایتم هارو یکی یکی بهش اضافه کرد مثل لاینو وایبر
پاسخ

اضافه کردن ایتم ها به صورت یک یکی به لیست ویو سفارشی (Animation برای item ها)

#3
سلام.
در اینگونه ListView ها، لیست item ها به صورت کامل ساخته می شود (نه اینکه یکی یکی به لیست اضافه کنیم)، بعد شیوه آمدن item ها به درون صفحه است که با تاخیر و بر اساس یک Animation خواهد بود (در واقع نمایش آنها است که این حس را القا می کند که یکی یکی افزوده می شوند).
شما باید یک انیمیشن را برای آمدن item ها به درون صفحه تعیین کنید. بنابراین باید کد مربوط به Animation مورد نظر، درون کدهای Adapter نوشته شود (Adapter ای که برای ساخت item ها به کار می رود).
من یک کد را برایتان ذکر می کنم :
ابتدا در شروع Activity ، کد زیر را می نویسیم (تعریف یک متغیر) :

کد پی‌اچ‌پی:
ArrayList<BooleanItems_shown_or_not = new ArrayList<Boolean>;(); 

این متغیر برای این منظور به کار خواهد رفت که تشخیص بدهیم کدام item ها قبلا به درون صفحه آمده اند تا با اسکرول دوباره، انیمیشن برای دومین بار اجرا نشود.
بعد درون Adapter ، کد زیر را می نویسیم :

کد پی‌اچ‌پی:
int Items_shown_or_not_size Items_shown_or_not.size();
if(
Items_shown_or_not_size position+1){
    
Items_shown_or_not.add(true);
}
Animation myAnimation_2 AnimationUtils.makeInChildBottomAnimation(this.ctx);
if(
Items_shown_or_not.get(position) & position>10){ // first row will be animated so we do it after that number
    
row.setAnimation(myAnimation_2);
    
Items_shown_or_not.set(positionfalse);


که در آن، row همان View مربوط به ردیف (item) می باشد.
تعیین کرده ایم که انیمیشن برای position های بزرگتر از 10 اجرا شود، زیرا برای item های اول موجود در صفحه، چندان زیبا نخواهد بود (هدف ما جذاب بودن ظاهر ListView است).
کد مورد نظر باید درون روش getView از Adapter نوشته شود. به عنوان مثال :

کد پی‌اچ‌پی:
@Override
public View getView(int positionView convertViewViewGroup parent) {
    
View row convertView;
    
    if (
row == null) {
        
LayoutInflater inflater = (LayoutInflaterctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        
row inflater.inflate(layoutIdparentfalse);
    }
    
    
    
// show slide up animation for items that comes to screen (start) ------------------------------------
    
int Items_shown_or_not_size Items_shown_or_not.size();
    if(
Items_shown_or_not_size position+1){
        
Items_shown_or_not.add(true);
    }
    
Animation myAnimation_2 AnimationUtils.makeInChildBottomAnimation(this.ctx);
    if(
Items_shown_or_not.get(position) & position>10){ // first row will be animated so we do it after that number
        
row.setAnimation(myAnimation_2);
        
Items_shown_or_not.set(positionfalse);
    }
    
// show slide up animation for items that comes to screen (end) ------------------------------------
    

    
    // end
    
return row;



این یک مدل Animation است، اکنون که روند کلی آن را یاد گرفته اید می توانید Animation های دلخواه دیگر را نیز تست کنید.

اگر قبلا با Adapter در ساخت ListView آشنایی ندارید، توصیه می کنم کلید زیر را بخوانید (کد کامل یک Adapter دلخواه و چگونگی به کار بردن آن برای ListView در آن ذکر شده) :

کلید شماره 843

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط بنیامین خلیفه ، osam20 ، sinabelle

اضافه کردن ایتم ها به صورت یک یکی به لیست ویو سفارشی (Animation برای item ها)

#4
آقا ما که نفهمیدیم!!!!! اینجا:
public View getView(int position, View convertView, ViewGroup parent)
این ارورو:
Syntax error, insert ";" to complete LocalVariableDeclarationStatement
میده.
پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)