我试图让 onDrawerOpen 专注于 ListView 而不是按钮。基本上,当我打开抽屉时,焦点始终在按钮布局上,但我希望在默认打开时位于项目列表(listView)上。任何人都可以写一个简单的例子吗?这是我的代码和布局。
private void initDrawer() {
mDrawerToggle = new ActionBarDrawerToggle
(this, mDrawerLayout, R.string.drawer_open, R.string.drawer_close) {
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
}
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
mDrawerList = (ListView) findViewById(R.id.selection_activity_list);
mDrawerList.requestFocus();
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
mDrawerList.setItemChecked(1, true);
mDrawerList.setItemChecked(R.color.background_hl, true);
mDrawerList.setSelection(R.color.background_color);
}
private class DrawerItemClickListener implements ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView parent, View view, int position, long id) {
mDrawerTitle = videoList.get(position).getTitle();
Log.d(TAG, "Playlist position " + position);
playlistManager.setCurrentIndex(position);
playlistManager.play(1, false);
//playlistManager.play(0, false);
//init();
mDrawerList.setItemChecked(R.drawable.custom_selector, true);
mDrawerList.setSelection(R.drawable.custom_selector);
mDrawerLayout.closeDrawer(mDrawerRelativeLayout);
setTitle(mDrawerTitle);
}
和我的 DrawerLayout 如下
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/left_drawer"
android:layout_width="@dimen/nav_drawer_size"
android:layout_height="match_parent"
android:layout_gravity="start"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:nestedScrollingEnabled="false"
android:touchscreenBlocksFocus="false">
<LinearLayout
android:id="@id/layout_country"
android:layout_width="140.0dip"
android:layout_height="fill_parent"
android:layout_marginBottom="0.0dip"
android:layout_marginLeft="0.0dip"
android:layout_marginRight="0.0dip"
android:layout_marginTop="0.0dip"
android:background="#f01e1e1e"
android:orientation="vertical"
android:layoutMode="clipBounds">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="60.0dip"
android:background="#ff1f1f1f">
<TextView
android:background="@drawable/button5_background"
android:id="@+id/country_title"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="@string/country"
android:textColor="@color/white"
android:textSize="20.0sp" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false">
<Button
android:layout_width="fill_parent"
android:layout_height="44dp"
android:text="All"
android:background="@drawable/button5_background"
android:textColor="#ffffff"
android:id="@+id/buttonAll"
android:layout_weight="1"
android:clickable="false" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false" >
<Button
android:layout_width="fill_parent"
android:layout_height="44dp"
android:text="@string/uk"
android:background="@drawable/custom_selector"
android:textColor="#ffffff"
android:id="@+id/button2"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false">
<Button
android:layout_width="fill_parent"
android:layout_height="44dp"
android:text="@string/frn"
android:background="@drawable/custom_selector"
android:textColor="#ffffff"
android:id="@+id/button3"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false" >
<Button
android:layout_width="fill_parent"
android:layout_height="44dp"
android:text="@string/ita"
android:background="@drawable/custom_selector"
android:textColor="#ffffff"
android:id="@+id/button4"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false" >
<Button
android:layout_width="fill_parent"
android:layout_height="44dp"
android:text="@string/ger"
android:background="@drawable/custom_selector"
android:textColor="#ffffff"
android:id="@+id/button5"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false" >
<Button
android:layout_width="fill_parent"
android:layout_height="44dp"
android:text="@string/spa"
android:background="@drawable/custom_selector"
android:textColor="#ffffff"
android:id="@+id/button7"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false" >
<Button
android:layout_width="fill_parent"
android:layout_height="44dp"
android:text="@string/arab"
android:background="@drawable/custom_selector"
android:textColor="#ffffff"
android:id="@+id/button6"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false" >
<Button
android:layout_width="fill_parent"
android:layout_height="44dp"
android:text="@string/som"
android:background="@drawable/custom_selector"
android:textColor="#ffffff"
android:id="@+id/button"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false" >
<Button
android:layout_width="fill_parent"
android:layout_height="44dp"
android:text="@string/ind"
android:background="@drawable/custom_selector"
android:textColor="#ffffff"
android:id="@+id/button8"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false" >
<Button
android:layout_width="fill_parent"
android:layout_height="44dp"
android:text="@string/spo"
android:background="@drawable/custom_selector"
android:textColor="#ffffff"
android:id="@+id/button9"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false" >
<Button
android:layout_width="fill_parent"
android:layout_height="44dp"
android:text="@string/eu"
android:background="@drawable/custom_selector"
android:textColor="#ffffff"
android:id="@+id/button10"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false" >
<Button
android:layout_width="fill_parent"
android:layout_height="44dp"
android:text="@string/swe"
android:textColor="#ffffff"
android:background="@drawable/custom_selector"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false" >
<Button
android:layout_width="fill_parent"
android:layout_height="44dp"
android:text="@string/rus"
android:textColor="#ffffff"
android:background="@drawable/custom_selector"
android:id="@+id/button11"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false" >
<Button
android:layout_width="fill_parent"
android:layout_height="44dp"
android:text="@string/usa"
android:textColor="#ffffff"
android:background="@drawable/custom_selector"
android:layout_weight="1" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:baselineAligned="false" >
<Button
android:layout_width="0dp"
android:layout_height="44dp"
android:text="@string/sth"
android:textColor="#ffffff"
android:background="@drawable/button5_background"
android:layout_weight="1" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="2.0dip"
android:layout_height="fill_parent"
android:layout_marginBottom="0.0dip"
android:layout_marginLeft="140.0dip"
android:layout_marginRight="0.0dip"
android:layout_marginTop="0.0dip"
android:background="@color/back"
android:orientation="vertical" />
<RelativeLayout
android:id="@id/layout_category"
android:layout_width="660.0dip"
android:layout_height="fill_parent"
android:layout_marginBottom="0.0dip"
android:layout_marginLeft="142.0dip"
android:layout_marginRight="1.0dip"
android:layout_marginTop="0.0dip"
android:orientation="vertical"
android:touchscreenBlocksFocus="true"
android:nestedScrollingEnabled="true">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="60.0dip"
android:background="#ff1f1f1f"
android:orientation="horizontal">
<LinearLayout
android:layout_width="300.0dip"
android:layout_height="fill_parent">
<TextView
android:id="@id/category_title"
android:layout_width="0.0dip"
android:layout_height="fill_parent"
android:layout_weight="0.78"
android:gravity="center"
android:text="@string/all"
android:textColor="@color/white"
android:textSize="20.0sp" />
<TextView
android:layout_width="0.0dip"
android:layout_height="fill_parent"
android:layout_weight="1.5"
/>
</LinearLayout>
<LinearLayout
android:layout_width="360.0dip"
android:layout_height="fill_parent">
<TextView
android:id="@id/epg_title"
android:layout_width="0.0dip"
android:layout_height="fill_parent"
android:layout_weight="3.0"
android:gravity="center"
android:text="@string/epg_now"
android:textColor="@color/white"
android:textSize="20.0sp" />
<LinearLayout
android:layout_width="0.0dip"
android:layout_height="fill_parent"
android:layout_weight="3.0"
android:gravity="center|right">
<ImageView
android:layout_width="28.0dip"
android:layout_height="28.0dip"
android:scaleType="centerInside"
android:src="@drawable/ic_menu" />
<TextView
android:id="@id/epg_help"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_marginLeft="4.0dip"
android:layout_marginRight="4.0dip"
android:gravity="center_vertical"
android:text="@string/to_schedule"
android:textColor="@color/white"
android:textSize="16.0sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="60.0dip"
android:orientation="horizontal">
<LinearLayout
android:layout_width="300.0dip"
android:layout_height="fill_parent"
android:background="#f01e1e1e" >
</LinearLayout>
<LinearLayout
android:layout_width="360.0dip"
android:layout_height="fill_parent"
android:background="#f01c1c1c"
android:weightSum="1">
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="60.0dip"
>
<ListView
android:background="@drawable/button5_background"
android:choiceMode="singleChoice"
android:checked="true"
android:nextFocusRight="@layout/list_selection_activity"
android:id="@+id/selection_activity_list"
android:layout_width="891dp"
android:layout_height="664dp"
android:listSelector="#fc0000"
android:scrollingCache="true"
android:scrollIndicators="none"
android:focusable="true"
android:focusableInTouchMode="true" />
<requestFocus />
</LinearLayout>
</RelativeLayout>
<LinearLayout
android:id="@id/layout_epg"
android:layout_width="360.0dip"
android:layout_height="fill_parent"
android:layout_marginBottom="0.0dip"
android:layout_marginLeft="442.0dip"
android:layout_marginRight="1.0dip"
android:layout_marginTop="60.0dip"
android:background="#ff1e1e1e"
android:orientation="vertical"
android:visibility="invisible">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="55.0dip"
android:orientation="horizontal"
android:paddingBottom="7.0dip"
android:paddingTop="7.0dip">
<TextView
android:id="@id/date1"
android:layout_width="0.0dip"
android:layout_height="fill_parent"
android:layout_marginLeft="2.0dip"
android:layout_weight="1.0"
android:gravity="center"
android:padding="0.0dip"
android:text="11/7"
android:textColor="@color/white"
android:textSize="16.0sp" />
<TextView
android:id="@id/date2"
android:layout_width="0.0dip"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:padding="0.0dip"
android:text="11/7"
android:textColor="@color/white"
android:textSize="16.0sp" />
<TextView
android:id="@id/date3"
android:layout_width="0.0dip"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:padding="0.0dip"
android:text="11/7"
android:textColor="@color/white"
android:textSize="16.0sp" />
<TextView
android:id="@id/date4"
android:layout_width="0.0dip"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:padding="0.0dip"
android:text="11/7"
android:textColor="@color/white"
android:textSize="16.0sp" />
<TextView
android:id="@id/date5"
android:layout_width="0.0dip"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:padding="0.0dip"
android:text="11/7"
android:textColor="@color/white"
android:textSize="16.0sp" />
<TextView
android:id="@id/date6"
android:layout_width="0.0dip"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:padding="0.0dip"
android:text="11/7"
android:textColor="@color/white"
android:textSize="16.0sp" />
<TextView
android:id="@id/date7"
android:layout_width="0.0dip"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:padding="0.0dip"
android:text="11/7"
android:textColor="@color/white"
android:textSize="16.0sp" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="2.0dip"
android:background="@color/background_hl"
android:orientation="horizontal" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="2.0dip"
android:orientation="horizontal" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView
android:id="@id/epg_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@id/layout_date"
android:layout_width="100.0dip"
android:layout_height="fill_parent"
android:layout_marginBottom="0.0dip"
android:layout_marginLeft="0.0dip"
android:layout_marginRight="1.0dip"
android:layout_marginTop="0.0dip"
android:background="#f01e1e1e"
android:orientation="vertical"
android:visibility="gone">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView
android:id="@id/date_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="59.0dip" />
</LinearLayout>
</LinearLayout>
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="gone" />