我有一个我用来创建日历的gridview。当我点击日历/ gridview外部时,我无法突出显示初始选择。日历/ gridview占据视图的上半部分并且在片段中,相应的列表将在下面。片段中网格的布局如下:
<GridView
android:id="@+id/weekGrid"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:listSelector="@color/green"
android:numColumns="7" >
</GridView>
要突出显示初始单元格,请在设置适配器后使用以下设置其位置:
calGrid.requestFocusFromTouch();
calGrid.setSelection(startPosition);
初始选择根据需要为绿色。但是,只要我点击gridview,绿色背景就会消失。如果我要选择另一个单元格,然后单击远离gridview,则不会发生这种情况。在这种情况下,突出显示仍然存在。我试过在gridview上设置一个onFocusChange监听器。但是在gridview外部单击时不会触发此操作。我也尝试在android:listSelector中使用选择器。
提前感谢您的帮助。
答案 0 :(得分:1)
试试这个:
替换:
calGrid.requestFocusFromTouch();
calGrid.setSelection(startPosition);
使用:
((ImageView)calGrid.getChildAt(startPosition)).setSelected(true);
我认为它应该可以解决您的问题,如果您没有使用ImageView,请将演员表更改为您正在使用的视图类型。