【问题标题】:Android Save Grid View StateAndroid 保存网格视图状态
【发布时间】:2014-12-15 14:16:59
【问题描述】:

Android 开发 - 网格视图滚动位置 嗨,我正在尝试使用网格视图创建壁纸应用程序。但是有一个问题,当我单击 Grid View 时,它需要进行不同的活动,当我按下返回按钮时,我必须再次从上到下滚动 Grid View。我希望网格视图应保持在我单击网格视图上的图像时的相同位置。

请帮忙。 非常感谢!

gridView = (GridView) findViewById(R.id.grid_view);


    // Instance of ImageAdapter Class       
    gridView.setAdapter(new ImageAdapter(this));


    /**
     * On Click event for Single Gridview Item
     * */
    gridView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View v,
                int position, long id) {

            // Sending image id to FullScreenActivity

            Intent i = new Intent(getApplicationContext(), FullImageActivity.class);
            // passing array index
            i.putExtra("id", position);
            startActivity(i);

        }
    });
}

【问题讨论】:

  • 您希望它滚动到确切的滚动值吗?另外,如果设备改变了方向应该怎么办?

标签: android android-gridview


【解决方案1】:

绝对有效的最终代码!

在顶部。 您需要创建一个静态变量索引。 并将 gridview 设为私有。

static int index;
private GridView gridView;

@Override
public void onResume(){

    gridView.setSelection(index);
    super.onResume();
}

@Override
public void onPause(){  
    index = gridView.getFirstVisiblePosition();
    super.onPause();
}

【讨论】:

    【解决方案2】:

    在 onResume() 中,

    gridView.setSelection(index, 0);
    

    在onPause中,在末尾添加以下行:

    index = gridView.getFirstVisiblePosition();
    

    【讨论】:

    • 它在网格视图中不起作用。请帮助我,我认为您通过这几行帮助了我很多,但它不起作用。
    • GridView 没有方法 setSelectionFromTop
    • 投反对票,因为网格视图没有 setSelectionFromTop
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多