0
在我的應用程序中,我有一個Fragment
,其中包含GridView
和ListView
以顯示使用CursorAdapter
的項目。只有這兩個視圖中的一個被啓用,用戶可以選擇他想要查看項目的方式。ListView焦點問題
所以,在我的Fragment
onCreateView
方法我有
gv = (GridView) v.findViewById(R.id.itemselect_gridview);
lv = (ListView) v.findViewById(R.id.itemselect_listview);
if (!UserPreferences.isViewStyleGrid(getActivity())) {
showList();
} else {
showGrid();
}
和showList
代碼和showGrid
是:
private void showList() {
gv.setVisibility(View.GONE);
lv.setVisibility(View.VISIBLE);
UserPreferences.getPreferences(getActivity()).edit()
.putString(Constants.VIEWSTYLE, "list").commit();
}
private void showGrid() {
lv.setVisibility(View.GONE);
gv.setVisibility(View.VISIBLE);
UserPreferences.getPreferences(getActivity()).edit()
.putString(Constants.VIEWSTYLE, "grid").commit();
}
當應用程序調用showList
,我不能使用d墊(遊戲控制器)導航ListView
。按下d-pad鍵無效,只有觸摸輸入有效。 如果應用程序調用showGrid
,則該d-pad工作正常。 如果我在運行時從網格切換到列表,dpad也可以在ListView
上正常工作,則交換機使用前面提到的相同方法生成。什麼可能導致這個問題?我試圖使用lv.setFocusable(true)
和lv.requestFocus()
沒有結果。