使用没有TitleBar或ActionBar的导航抽屉

我正在添加一个导航抽屉到我正在开发的这个应用程序,我已经search了互联网; 论坛,stackoverflow,Android开发人员的文档,仍然没有find一个很好的答案。

我知道有可能做到这一点,而不使用任何这些东西。 我想知道的是如何。 NsMenuAdapter模型使用标题,然后有这些function

getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setHomeButtonEnabled(true); 

这显然是寻找一个行动栏。 我尝试了一些没有工作的模型,我刚刚尝试的大的模型位于这里如何添加Android导航抽屉的标题旁边的图标 (这与我有下面的链接有关,该项目是从gitHub这里https://github.com/gabrielemariotti/androiddev/tree/master/NavigationDrawer )。 现在关键的是,我正在使用一个自定义的布局(即相对布局与线性布局混合),我真的失去了我的下一步应该是为了得到这个工作。

旁注:当我在main_activity.xml(导航抽屉的实现)中只有ListView的时候,它可以正常滑动,就像它假设的那样。 但我不能为了我的生活弄清楚如何用数据填充它。 我基本上需要3个标题,其中将有可点击的导航元素,与元素旁边的图标。

我转向这种模式,我的大多数洞察力,如何通过相对布局http://gmariotti.blogspot.com/2013/05/creating-navigation-drawer.html这样做,但他们使用动作/标题栏这是什么真的把我扔了一个循环。

Related of "使用没有TitleBar或ActionBar的导航抽屉"

实际上这很简单。 比ActionBar更容易。 我正在用最简单的布局来写答案

让你的xml如下所示:

 <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" > <!-- This is how your main page will look, just 2 buttons --> <RelativeLayout android:layout_width="match_parent" android:layout_height="100dp" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:onClick="onLeft" android:text="left" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:onClick="onRight" android:text="right" /> </RelativeLayout> <!-- Left Drawer --> <RelativeLayout android:id="@+id/whatYouWantInLeftDrawer" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" > <ListView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/background_dark" /> <!-- you can have many more widgets here like buttons or labels --> </RelativeLayout> <!-- Right Drawer --> <RelativeLayout android:id="@+id/whatYouWantInRightDrawer" android:layout_width="200dp" android:layout_height="wrap_content" android:layout_gravity="right" > <ListView android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/holo_green_light" /> <!-- you can have many more widgets here like buttons or labels --> </RelativeLayout> </android.support.v4.widget.DrawerLayout> 

然后让你的活动像这样:

 public class MainActivity extends Activity { RelativeLayout leftRL; RelativeLayout rightRL; DrawerLayout drawerLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // I'm removing the ActionBar. requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); leftRL = (RelativeLayout)findViewById(R.id.whatYouWantInLeftDrawer); rightRL = (RelativeLayout)findViewById(R.id.whatYouWantInRightDrawer); drawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout); } public void onLeft(View view) { drawerLayout.openDrawer(leftRL); } public void onRight(View view) { drawerLayout.openDrawer(rightRL); } } 

而已。 希望能帮助到你。

我知道有可能做到这一点,而不使用任何这些事情。 我想知道的是如何。

步骤#1:按照使用DrawerLayout的说明,例如本培训指南中的步骤,跳过与操作栏有关的任何内容。

步骤#2:没有步骤#2。

虽然DrawerLayout 可以使用操作栏,但并不是必需的,实际上需要额外的设置。