我正在使用导航抽屉,如here: Android Example所示。目前,Actionbar是静态的,当抽屉打开/关闭时它不会移动(只有它的标题更改)。我该如何应用这种效果:
我希望整个ActionBar随Sliding片段一起移动。并且ActionBar上的名称和按钮保持不变。请告诉我你需要看的代码。
另外,问题2:
当你使用DrawerLayout
时,你在xml中包含FrameLayout(用于content_frame)和ListView(你添加导航设置的地方......在那个抽屉里,你可以修改布局,这样你就可以不仅可以添加ListView,还可以添加其他视图吗?在ListView的顶部或底部?像这样:
我想添加未链接的ImageView(不是超链接,只是图像)和附加TextViews(用于说明)。
答案 0 :(得分:9)
考虑使用SlidingMenu
中的GitHub
库。它具有强大的灵活性,您也可以随心所欲地使用它。您只需调用:
setSlidingActionBarEnabled(true);
答案 1 :(得分:2)
第二点:当然可以。 NavigationDrawer不仅限于使用ListView。只需使用像LinearLayout这样的ViewGroup作为DrawerLayout的第二个子项,并放入您想要的任何视图中。 但请记住在LinearLayout的规范中添加此行:
<LinearLayout
...
android:layout_gravity="start"
...>
<TextView..../>
<ImageView...../>
<LinearLayout/>
答案 2 :(得分:2)
我认为你可以使用这种布局来实现抽屉列表视图顶部的一些视图。
<!-- The main content view -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
<!-- The navigation drawer -->
<RelativeLayout
android:id="@+id/drawerLeft"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:background="#191919" >
<EditText
android:id="@+id/edit_Search"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FC3A3B"
android:hint=" Search"
android:padding="10dp"
android:textColor="#ffffff"
android:textColorHint="#ffffff" >
<requestFocus />
</EditText>
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/edit_Search"
android:layout_alignParentRight="true"
android:layout_marginBottom="5dp"
android:layout_marginRight="20dp"
android:src="@drawable/icon_small_search" />
<ListView
android:id="@+id/drawer_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/edit_Search"
android:background="#191919"
android:choiceMode="singleChoice"
android:divider="#000000"
android:dividerHeight="1dp" >
</ListView>
</RelativeLayout>
答案 3 :(得分:1)
我认为这就是你要找的东西。这是您所引用示例的示例源代码中的代码。
// ActionBarDrawerToggle ties together the the proper interactions
// between the sliding drawer and the action bar app icon
mDrawerToggle = new ActionBarDrawerToggle(this, /* host Activity */
mDrawerLayout, /* DrawerLayout object */
R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */
R.string.drawer_open, /* "open drawer" description for accessibility */
R.string.drawer_close /* "close drawer" description for accessibility */
) {
public void onDrawerClosed(View view) {
getActionBar().setTitle(mTitle);
invalidateOptionsMenu(); // creates call to
// onPrepareOptionsMenu()
}
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle(mDrawerTitle);
invalidateOptionsMenu(); // creates call to
// onPrepareOptionsMenu()
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);