Мое приложение является активностью списка, который содержит 26 строк, каждый из которых содержит изображение и текст, каждая вещь работает нормально, но прокрутка списка показывает некоторое отставание, а не гладкое, если прокручивать ее так же гладко, как и по умолчанию андроид списка контактов,Список прокрутки lag
я пытался: lv.setFastScrollEnabled(true);
также пытался уменьшить размер изображения в каждой строке, пока я заменил все изображения с ic_launcher изображений для тестирования, но та же задержка есть.
, но это не имеет никакого значения для сглаживания свитка моего списка, любые советы или помощь будут высоко оценены. примечание: классы, названные в арабском языке.
мой код:
Меню Класс:
public class Menu extends ListActivity {
String classes[] = { "المقدمة", "رحلتي", "اليوم الأول", "اليوم الثاني", "اليوم الثالث",
"اليوم الرابع", "اليوم الخامس", "اليوم السادس", "اليوم السابع", "اليوم الثامن", "اليوم التاسع", "اليوم العاشر", "اليوم الحادي عشر",
"اليوم الثاني عشر", "اليوم الثالث عشر", "اليوم الرابع عشر", "اليوم الخامس عشر", "اليوم السادس عشر", "اليوم السابع عشر",
"اليوم الثامن عشر", "اليوم التاسع عشر", "اليوم العشرون", "اليوم الحادي والعشرين", "اليوم الثاني والعشرين", "اليوم الثالث والعشرين", "الخاتمة"};
@Override
protected void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// create background for whole list as image
ListView lv = getListView();
lv.setFastScrollEnabled(true);
lv.setCacheColorHint(0);
lv.setDivider(new ColorDrawable(0xFFDAB999));
lv.setSelector(android.R.color.transparent);
lv.setDividerHeight(10);
lv.setPadding(50, 0, 50, 0);
lv.setVerticalScrollBarEnabled(false);
lv.setBackgroundResource(R.drawable.a);
setListAdapter(new MyArrayAdapter(this, classes)); }
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
String cheese = classes[position];
if(cheese.equals("المقدمة")) cheese = "Introduction";
if(cheese.equals("رحلتي")) cheese = "MyTrip";
if(cheese.equals("اليوم الأول")) cheese = "Day1";
if(cheese.equals("اليوم الثاني")) cheese = "Day2";
if(cheese.equals("اليوم الثالث")) cheese = "Day3";
if(cheese.equals("اليوم الرابع")) cheese = "Day4";
if(cheese.equals("اليوم الخامس")) cheese = "Day5";
if(cheese.equals("اليوم السادس")) cheese = "Day6";
if(cheese.equals("اليوم السابع")) cheese = "Day7";
if(cheese.equals("اليوم الثامن")) cheese = "Day8";
if(cheese.equals("اليوم التاسع")) cheese = "Day9";
if(cheese.equals("اليوم العاشر")) cheese = "Day10";
if(cheese.equals("اليوم الحادي عشر")) cheese = "Day11";
if(cheese.equals("اليوم الثاني عشر")) cheese = "Day12";
if(cheese.equals("اليوم الثالث عشر")) cheese = "Day13";
if(cheese.equals("اليوم الرابع عشر")) cheese = "Day14";
if(cheese.equals("اليوم الخامس عشر")) cheese = "Day15";
if(cheese.equals("اليوم السادس عشر")) cheese = "Day16";
if(cheese.equals("اليوم السابع عشر")) cheese = "Day17";
if(cheese.equals("اليوم الثامن عشر")) cheese = "Day18";
if(cheese.equals("اليوم التاسع عشر")) cheese = "Day19";
if(cheese.equals("اليوم العشرون")) cheese = "Day20";
if(cheese.equals("اليوم الحادي والعشرين")) cheese = "Day21";
if(cheese.equals("اليوم الثاني والعشرين")) cheese = "Day22";
if(cheese.equals("اليوم الثالث والعشرين")) cheese = "Day23";
if(cheese.equals("الخاتمة")) cheese = "Conclusion";
try{
Intent ourIntent;
if(position>1 && position<25) {
Class ourClass = Class.forName("com.tsn.dr.MyDay");
ourIntent = new Intent(Menu.this, ourClass);
ourIntent.putExtra("cheese", cheese);}
else {
Class ourClass = Class.forName("com.tsn.dr." + cheese);
ourIntent = new Intent(Menu.this,ourClass); }
startActivity(ourIntent); }
catch (ClassNotFoundException e){
e.printStackTrace(); }}
public boolean onCreateOptionsMenu(android.view.Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.cool_menu, menu);
getLayoutInflater().setFactory(new Factory() {
public View onCreateView(String name, Context context,
AttributeSet attrs) {
if (name .equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView")) {
try {
LayoutInflater li = LayoutInflater.from(context);
final View view = li.createView(name, null, attrs);
new Handler().post(new Runnable() {
public void run() {
view .setBackgroundResource(R.drawable.border3);
((TextView) view).setTextSize(25);
Typeface face=Typeface.createFromAsset(getAssets(),"BFantezy.ttf");
((TextView) view).setTypeface(face);
((TextView) view).setTextColor(Color.RED);
}
});
return view;
} catch (InflateException e) {
} catch (ClassNotFoundException e) {
}
}
return null;
}
});
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case R.id.aboutUs:
Intent i = new Intent("com.tsn.dr.ABOUT");
startActivity(i);
break;
case R.id.preferences:
Intent p = new Intent("com.tsn.dr.PREFS");
startActivity(p);
break;
case R.id.exit:
finish();
break;
}
return false;
}
}
MyArrayAdapter Класс:
public class MyArrayAdapter extends ArrayAdapter<String> {
private final Activity context;
private final String[] classes;
Typeface tf;
public MyArrayAdapter(Activity context, String[] classes) {
super(context, R.layout.row, classes);
this.context = context;
this.classes = classes;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
tf=Typeface.createFromAsset(context.getAssets(),"BFantezy.ttf");
LayoutInflater inflater = context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.row, null, true);
TextView textView = (TextView) rowView.findViewById(R.id.row_label);
ImageView imageView = (ImageView) rowView.findViewById(R.id.row_image);
String s = classes[position];
textView.setText(s);
((TextView)textView).setTypeface(tf);
if (s.startsWith("اليوم الأول")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم الثاني")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم الثالث")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم الرابع")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم الخامس")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم السادس")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم السابع")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم الثامن")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم التاسع")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم العاشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم الحادي عشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم الثاني عشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم الثالث عشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم الرابع عشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم الخامس عشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم السادس عشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم السابع عشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم الثامن عشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم التاسع عشر")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم العشرون")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم الحادي والعشرين")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم الثاني والعشرين")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("اليوم الثالث والعشرين")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("الخاتمة")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("رحلتي")) {
imageView.setImageResource(R.drawable.ic_launcher); }
if (s.startsWith("المقدمة")) {
imageView.setImageResource(R.drawable.ic_launcher); }
return rowView; }}
Вы создаете новую строку Просмотр при каждом прокрутке, вам нужно повторно использовать макеты, [используйте подход ViewHolder.] (Http://stackoverflow.com/a/9359237/593709) –
@ Adil Soomro натурально мой друг, я создал свой список, используя классы и im, не использующие XML-список, - это то, что работает с подходом ViewHolder, спасибо –
. Все, что имеет значение, - это реализации вашего адаптера. –