2


谁能指导我如何将网格视图的特定元素设置为选中?

.setSelection(positionOfItem)不起作用。

gridViewSize  =  (GridView) inflaterView.findViewById(R.id.grid_sizes);
        gridViewSize.setAdapter(new PopupSizeAdapter(context,typeArr,1));
        gridViewSize.setSelection(0);
4

3 回答 3

2

它对我有用

mGridView.setSelection(pos);
mGridView.requestFocusFromTouch();
mGridView.setSelection(pos);
于 2012-12-11T08:59:23.167 回答
1

我今天遇到了同样的问题,以下是我的解决方案:

GridView.getViewTreeObserver.addOnGlobalLayoutListener(getLayoutListener(mGridView))
private static ViewTreeObserver.OnGlobalLayoutListener getLayoutListener(final GridView mGridView) {
    ViewTreeObserver.OnGlobalLayoutListener listener = new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            View view = mGridView.getChildAt(0);
            if(view != null) {
                if(!view.isSelected()) {
                    view.setSelected(true);
                } else {
                    // remove the listener after the first time.
                    if (Build.VERSION.SDK_INT < 16) {
                        mGridView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
                    } else {
                        mGridView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
                    }
                }
            }
        }
    };

    return listener;
}

而且,如果您使用的是 android API >= 11,您还可以将 View.OnLayoutChangeListener 添加到 GridView。

于 2013-09-24T16:48:01.860 回答
0

尝试这个:

grid.performItemClick(view, position, id);

然后我的状态可绘制在 GridView 上正常工作。

于 2013-07-19T13:46:37.350 回答