کلیدستان

نسخه‌ی کامل: ایجاد افکت برای ایتم های لیست ویو در فرگمنت (در برنامه نویسی اندروید)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
با سلام ، دوستانه کسی هست بدونه چطوری باید به لیست ویو موجود در یک فرگمنت افکت اضافه کرد ، از بالا به پایین یا بلعکس همراه با یک نوع انیمیشن، ایتم ها ظاهر بشن؟
سلام.
معمولا اینکه ListView در یک Fragment باشد یا نه، خیلی تفاوتی در کدنویسی این موارد ندارد زیرا باید Animation مورد نظرمان برای item های ListView را در Adapter سازنده item ها کدنویسی کنیم.
موضوع زیر را به عنوان یک مثال بخوانید :

http://www.kelidestan.com/forum/showthread.php?tid=5864


 
مشکل من دقیقا هیمن جاست که از getView استفاده نکردم ، از onCreateView استفاده کردم ، که خبری از position نیست تا بتونم بوسلیه اون افکت اضافه کنم ، بنظرتون راهی هست تا position را دستی بوسیلیه کد های دیگه درست کنم .
خیلی ممنون استاد بابت راهانمایتون ، واقعا شما و سایتتون حامی بزرگی برای من هستید .باتشکر
 
(۱۳۹۴/۰۴/۲۵, ۱۲:۵۳ ب.ظ)'osam20' نوشته: [ -> ]مشکل من دقیقا هیمن جاست که از getView استفاده نکردم ، از onCreateView استفاده کردم ، که خبری از position نیست تا بتونم بوسلیه اون افکت اضافه کنم ، بنظرتون راهی هست تا position را دستی بوسیله کد های دیگه درست کنم .
خیلی ممنون استاد بابت راهانمایتون ، واقعا شما و سایتتون حامی بزرگی برای من هستید .باتشکر
 

 

خیلی ممنون. 
اطلاعی در این زمینه ندارم. کمی جستجو کنید، چنانچه راه حلی پیدا نکردید، ساختار کدنویسی ListView را به آن شکل (استفاده از روش getView) تغییر بدهید. 




 
(۱۳۹۴/۰۴/۲۵, ۱۲:۵۳ ب.ظ)'osam20' نوشته: [ -> ]مشکل من دقیقا هیمن جاست که از getView استفاده نکردم ، از onCreateView استفاده کردم ، که خبری از position نیست تا بتونم بوسلیه اون افکت اضافه کنم ، بنظرتون راهی هست تا position را دستی بوسیلیه کد های دیگه درست کنم .
خیلی ممنون استاد بابت راهانمایتون ، واقعا شما و سایتتون حامی بزرگی برای من هستید .باتشکر
 

داداش بدون getview نمیشه منم امتحان کردم نشد البته تو کد زیر با getview هست که عالی کار میکنه.

کد پی‌اچ‌پی:
private class MyAdapter extends ArrayAdapter<String> {

        public 
MyAdapter(Context contextint resourceint textViewResourceId,
                
String strings) {
            
super(contextresourcetextViewResourceIdstrings);
            
// TODO Auto-generated constructor stub
        
}

        @
Override
        
public View getView(int positionView convertViewViewGroup parent) {
            
LayoutInflater inflater = (LayoutInflatergetSystemService(Context.LAYOUT_INFLATER_SERVICE);
            
View row inflater.inflate(R.layout.list_item_subjectsparent,
                    
false);
            
String items Subjects;

            
TextView tv = (TextViewrow.findViewById(R.id.textView1);
            
tv.setText(items[position]);
//اینجا انیمشن رو تعیین میکنیم واسه هر ردیف
            
Animation animation AnimationUtils.loadAnimation(getContext(),
                    
R.anim.اسم فایلتون);
            
row.startAnimation(animation);
            return 
row;
        }
    } 

اینم خود انیمشن تو پوشه anim

کد پی‌اچ‌پی:
<set xmlns:android="http://schemas.android.com/apk/res/android"
    
android:shareInterpolator="false" >

    <
translate
        android
:duration="400"
        
android:fromXDelta="100%"
        
android:fromYDelta="0%"
        
android:toXDelta="0%"
        
android:toYDelta="0%" />

</
set

اگر از دوستان میتونه اطلاعاتی بدون get view بده ممنون مشم

خود کد اصلی من تقریبا اینطوریه:
تقریبا شبیه favorites

کد پی‌اچ‌پی:
public class Favorites extends Activity {
    
    public 
int Subjects_total_number;
    public 
Globals global = new Globals();
    public List<
StringFavorites_numbers;
    public List<
StringFavorites_strings;
    
    
// List view
    
private ListView lv;
     
    
// Listview Adapter
    
ArrayAdapter<Stringadapter;

    @
Override
    
protected void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.favorites);
        
        
// Listview Data
        
Favorites_strings = new ArrayList<String>;();
        
Favorites_numbers = new ArrayList<String>;();
        final 
SharedPreferences shared getSharedPreferences("Prefs"MODE_PRIVATE);
        
Subjects_total_number = global.Subjects_total_number;
        for(
int x 1Subjects_total_number+1x+1) {  
            
String each_subject "subject_" String.valueOf(x);
            
Boolean b shared.getBoolean(each_subjectfalse);
            if(
b){
                
String this_subject "subject_" String.valueOf(x);
                
int resID getResources().getIdentifier(this_subject"string"getPackageName());
                
Favorites_strings.add(getResources().getString(resID));
                
String x_string String.valueOf(x);
                
Favorites_numbers.add(x_string);
            }
        }
        
        
         
        
lv = (ListViewfindViewById(R.id.list_view);
         
        
// Adding items to listview
        
adapter = new ArrayAdapter<String>;(thisR.layout.list_item_favoritesR.id.favorites_textViewFavorites_strings);
        
lv.setAdapter(adapter);
        
        
        
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @
Override
            
public void onItemClick(AdapterView<?> parent, final View view,
                int position, long id) {
                String favorite_number = Favorites_numbers.get(position);
                Intent i = new Intent(getApplicationContext(), Show_Subjects.class);
                i.putExtra("subject_number", favorite_number);
                startActivity(i);
            }

          });
    } 
این کد اولی که کار میکنه تو ListActivity هستش اما وقتی اون کد را داخل ListFragment میرزم و اون رو که extend میکنم خطا میده
میشه کد اولی را داخل یک کلاس listfragment داخل کلاس فرگمنت اصلی نوشت ؟

یه جوری نوشتم خودمم نفهمیدم

کد پی‌اچ‌پی:
// یه چیزی تو این مایه ها
public class smsblocker extends Fragment {

//داخل این لیست فرگمنت 
//که توش کدی که getview داره رو وارد کرد میشه 
//میشه ادمین ؟
//کمکی میکنید 


(۱۳۹۴/۰۴/۲۷, ۱۲:۰۷ ق.ظ)'saeed.f436' نوشته: [ -> ]این کد اولی که کار میکنه تو ListActivity هستش اما وقتی اون کد را داخل ListFragment میرزم و اون رو که extend میکنم خطا میده
میشه کد اولی را داخل یک کلاس listfragment داخل کلاس فرگمنت اصلی نوشت ؟

یه جوری نوشتم خودمم نفهمیدم
کد پی‌اچ‌پی:
// یه چیزی تو این مایه ها
public class smsblocker extends Fragment {

//داخل این لیست فرگمنت 
//که توش کدی که getview داره رو وارد کرد میشه 
//میشه ادمین ؟
//کمکی میکنید 



 

 


دوست عزیز منم بیشتر روش ها رو امتحان کردم ولی نشد که نشد واسه همینم از یک انیمیشن ساده در زمان اول ظاهر شدن لیست ویو استفاده کردم .
این فرگمنت ها هم واسه خودشون عجب دردسرین 
 
به کدوم خط برنامه ایراد میگیره
(۱۳۹۴/۰۵/۱۰, ۰۱:۳۶ ب.ظ)'داش بهروز' نوشته: [ -> ]به کدوم خط برنامه ایراد میگیره
 

به قسمتی که باید در getView  باید inflater روReturn کنی چون خود فرگمنت در onCreatView  یک مقدار برگشتی داره ، هر کاری کردم نتوسنتم ادغامشون کنم.
اینطوری که من متوجه شدم کلا متدهای getView , onCreatView در فرگمنت با هم سر سازش ندارن و چون در فرگمنت هم باید از onCreatView استفاده کرد جواب نمیده