Android 我有G3用户抱怨我的导航抽屉无法使用

Android 我有G3用户抱怨我的导航抽屉无法使用,android,navigation-drawer,android-appcompat,drawerlayout,Android,Navigation Drawer,Android Appcompat,Drawerlayout,无法使用,因为它非常滞后,几乎无法到达所有的项目,因为它是多么缓慢。我真的不知道我在实现导航抽屉时犯了什么错误。我正在使用AppCompatV7的材质主题,并使用viewholder模式。抽屉中只包含600x232的图像,每个图像大小约为35kb,存储在应用程序的本地 这是我主要活动的一个样本 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState

无法使用,因为它非常滞后,几乎无法到达所有的项目,因为它是多么缓慢。我真的不知道我在实现导航抽屉时犯了什么错误。我正在使用AppCompatV7的材质主题,并使用viewholder模式。抽屉中只包含600x232的图像,每个图像大小约为35kb,存储在应用程序的本地

这是我主要活动的一个样本

 @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);   
    setContentView(R.layout.activity_main);

    . . . 

    mColorIcons = getResources().getStringArray(R.array.color_icons);
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerList = (ListView) findViewById(R.id.left_drawer);

    adapter = new MyPerformanceArrayAdapter(this, mColorIcons);
    // set a custom shadow that overlays the main content when the drawer opens
    mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);

    mDrawerList.setAdapter(adapter);
    mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
    mDrawerList.setCacheColorHint(Color.TRANSPARENT); // not sure if this is required for you. 
    mDrawerList.setFastScrollEnabled(true);
    mDrawerList.setScrollingCacheEnabled(false);
    . . .
下面是MyPerformanceArrayaAdaptor的外观

public class MyPerformanceArrayAdapter extends ArrayAdapter<String>{

 private final Activity context;
 private final String[] names;

  static class ViewHolder {
    public ImageView image;
  }

  public MyPerformanceArrayAdapter(Activity context, String[] names) {
    super(context, R.layout.drawer_list_item, names);
    this.context = context;
    this.names = names;
  }

  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
        View rowView = convertView;
        // reuse views
        if (rowView == null) {
          LayoutInflater inflater = context.getLayoutInflater();
          rowView = inflater.inflate(R.layout.drawer_list_item, null);
          // configure view holder
          ViewHolder viewHolder = new ViewHolder();
          viewHolder.image = (ImageView) rowView
              .findViewById(R.id.image);
          rowView.setTag(viewHolder);
        }

        // fill data
        ViewHolder holder = (ViewHolder) rowView.getTag();
        String s = names[position];
        holder.image.setImageResource(context.getResources().getIdentifier(s, "drawable", context.getPackageName()));
        return rowView;
  }    
}
如果您能就如何改进这一点提供意见,我将不胜感激。在2013款Moto X 4.4.4、Nexus 5 L和Nexus 7 L2013上进行测试时,我没有遇到任何问题。我想不出具体与LG G3有关的问题是什么。有一些报道称,它在HTC M8上的表现也不好

编辑:这是我的抽屉列表项目xml代码

  <LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent">

  <ImageView
    android:id="@+id/image"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:adjustViewBounds="true"/>

</LinearLayout>

我只能建议逐个禁用上述代码中的内容,并将测试版本发送给一个更有用的用户进行尝试。

我能够通过在后台线程上加载图像来解决此问题。

不可用意味着什么?表现不佳意味着什么?您是否使用过Apkudo之类的服务来查看您的应用程序在各种设备上的外观?由于速度太慢,无法使用,并且几乎无法访问所有项目。我猜发送的更改将设置为“CrollingCacheAbled”为真。可能是屏幕正在调整图像的大小,使其更大,并将其全部保存在内存中。