我正在尝试将导航抽屉添加到包含一个或两个片段的活动中。无论显示多少片段,我希望此活动有一个与之关联的导航抽屉。要做到这一点,我想我需要两个xml文件,一个用于活动,一个用于片段。这似乎有效,除了当导航抽屉打开时,它在正常内容视图“下”。难道我做错了什么?或者有没有办法增加抽屉的z索引?
这是活动中的onCreate(),
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alarm_list);
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(android.R.id.content, new AlarmListFragment());
fragmentTransaction.commit();
}
这是我的xml布局:
的活动:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/alarm_list"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
<ListView android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#111"/>
</android.support.v4.widget.DrawerLayout>
片段:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
我会对如何解决这个问题提出任何建议!谢谢!
答案 0 :(得分:2)
我想知道代码是如何为你工作的。上面的代码不起作用。您将片段放在android.R.id.content
。但我没有在DrawerLayout
你的Activity XML中看到它。此外,抽屉布局应该只有FrameLayout
(在您的情况下为id'内容')和ListView
,如上所述here。因此,您需要在要实现导航抽屉的Activity XML中添加如下所示的FrameLayout
。
<FrameLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent" />
此外,您还必须将xml移动到另一个片段中,您可以在活动开始时或需要时加载它。