我制作了一个工作的导航抽屉,就像它在developer.android.com网站上的教程中所示.但现在,我想使用一个导航抽屉,我在NavigationDrawer.class中为我的应用程序中的多个活动创建.
我的问题是,如果这里有人可以制作一个小教程,这解释了如何使用一个导航抽屉进行多个活动.
我在多个活动的答案Android导航抽屉上首先阅读了它
但它对我的项目不起作用
public class NavigationDrawer extends Activity {
public DrawerLayout drawerLayout;
public ListView drawerList;
private ActionBarDrawerToggle drawerToggle;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
drawerToggle = new ActionBarDrawerToggle((Activity) this, drawerLayout, R.drawable.ic_drawer, 0, 0) {
public void onDrawerClosed(View view) {
getActionBar().setTitle(R.string.app_name);
}
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle(R.string.menu);
}
};
drawerLayout.setDrawerListener(drawerToggle);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
layers = getResources().getStringArray(R.array.layers_array);
drawerList = (ListView) findViewById(R.id.left_drawer);
View header = getLayoutInflater().inflate(R.layout.drawer_list_header, null);
drawerList.addHeaderView(header, null, false);
drawerList.setAdapter(new ArrayAdapter<String>(this, …Run Code Online (Sandbox Code Playgroud) navigation android drawer android-activity navigation-drawer
我一直在关注谷歌的导航抽屉指南,我想将它添加到带有标签和手势的活动中.
我想禁用打开导航抽屉的手势,有没有人知道如何做到这一点?
我正试图将导航抽屉放在操作栏上,当它向右滑动时就像这个应用程序:[已删除]
这是我的主要活动的布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout ...>
<RelativeLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
...
</RelativeLayout>
<fragment android:name="com...."
android:layout_gravity="start"
android:id="@id/navigation"
android:layout_width="@dimen/navigation_menu_width"
android:layout_height="fill_parent" />
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)
stackoverflow上的其他一些问题与此问题类似, 但所有答案都建议使用滑动菜单库.但是这个应用程序他们仍然使用android.support.v4.widget.DrawerLayout并且他们成功了.不要问我怎么知道他们使用标准导航抽屉,但我确定.
非常感谢您的帮助.
这是最终的解决方案:非常感谢@Peter Cai这项工作完美无缺. https://github.com/lemycanh/DrawerOnTopActionBar
所以这是我的activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="MainActivity"
>
<!-- A DrawerLayout is intended to be used as the top-level content view using match_parent for both width and height to consume the full space available. -->
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<!-- As the main content view, the view below consumes the entire
space available using match_parent in both dimensions. -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/ll_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/my_awesome_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/black"
android:fitsSystemWindows="true"
>
<TextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content" …Run Code Online (Sandbox Code Playgroud) 抽屉有这个默认的三个水平条作为默认图标,但我想把它改成别的东西。我已经检查了 Drawer() 下的可能选项,但似乎没有附加任何属性。PS:我是 Flutter 的初学者。
我正在尝试实现NavigationDrawer自上一次Android主题演讲以来提供的新功能.
我把所有东西都搞定了,当按下左上角的图标时,导航抽屉会打开和关闭.
但是现在我仍然有箭头图标,虽然我用Android中的ic_drawer替换了它.为什么?
这是我指定图标的代码:
mDrawerToggle = new ActionBarDrawerToggle(
this,
mDrawerLayout,
R.drawable.ic_drawer, //<-- This is the icon provided by Google itself
R.string.drawer_open,
R.string.drawer_close
)
Run Code Online (Sandbox Code Playgroud)
但该应用程序仍然使用标准图标运行setDisplayHomeAsUpEnabled.
有任何想法吗?
我正在使用setDisplayHomeAsUpEnabled来显示箭头而不是抽屉"汉堡"图标,但它没有动画或任何东西.相反,它立即显示箭头可绘制.
主屏幕:( 专辑1)
点按电影时:( 专辑2)
问题是,当我滑动抽屉时,图标会使动画很好,这让我想到也许我不应该使用setDisplayHomeAsUpEnabled :( 专辑3)
专辑: http ://imgur.com/a/LkXbh
这是我的抽屉切换代码:
Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);
drawerAdapter = new DrawerAdapter(this, App.getNavItems(), getSupportFragmentManager());
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
drawerList = (ExpandableListView) findViewById(R.id.left_drawer);
// Set onGroupClick and onChildClick
drawerAdapter.setClickEvents(MainActivity.this, drawerLayout, drawerList);
drawerList.setAdapter(drawerAdapter);
ActionBarDrawerToggle toolbarDrawerToggle = new ActionBarDrawerToggle(
this,
drawerLayout,
toolbar,
R.string.drawer_open,
R.string.drawer_close
) {
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
invalidateOptionsMenu();
}
public void onDrawerOpened(View view) {
super.onDrawerOpened(view);
invalidateOptionsMenu();
}
};
drawerLayout.setDrawerListener(toolbarDrawerToggle);
toolbarDrawerToggle.syncState();
Run Code Online (Sandbox Code Playgroud)
编辑:我想要的动画不是在打开抽屉时,已经有效了.我想在加载特定片段时手动触发动画.我可能没有正确解释自己.
SlidingMenu库是一个优秀的第三方库,我已经使用了很长时间.现在我知道Android使用Navigation Drawer提供了一个新的导航模式.它看起来像滑动菜单.那么有没有人已经使用这两个?有什么区别,有什么优点和缺点?非常感谢.
我有一个带有10个选项的导航抽屉选项#5 shoudl有另外7个可扩展/可折叠的选项(如子菜单)
如何创建一个"可折叠的导航项目"就像是描述在这里?
我目前正在从android站点了解导航抽屉,我正在使用他们的示例http://developer.android.com/training/implementing-navigation/nav-drawer.html
我想要的是在MainActivity其中添加一个能够打开的按钮NavigationDrawer.我需要以编程方式,而不是XML.我怎样才能做到这一点?