对于jfeinstein10(https://github.com/jfeinstein10/SlidingMenu)的滑动菜单,我可以在应用程序的任何位置滑动以滑动打开菜单.
对于Google新推出的导航抽屉http://developer.android.com/design/patterns/navigation-drawer.html#side-nav,有什么方法可以让我有类似的行为吗?
到目前为止,从文档中我看到它仅限于从边缘滑动或触摸应用程序图标.
用户可以通过从屏幕左边缘轻扫或触摸操作栏上的应用程序图标将导航抽屉带到屏幕上.
我使用以下库创建了应用程序抽屉:http: //developer.android.com/training/implementing-navigation/nav-drawer.html
我想在打开应用程序时向导航抽屉显示动画.我怎样才能做到这一点?
我有一个带导航抽屉的活动,它取代了活动上的main_fragment_container.当显示其中一个片段时,我想更改工具栏的布局并向其添加一个微调器(并在隐藏片段时将其删除).
我的布局看起来像这样:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:sothree="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_parent_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:fitsSystemWindows="true">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
sothree:theme="@style/AppTheme.ActionBar" />
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Main layout -->
<FrameLayout
android:id="@+id/main_fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- Nav drawer -->
<fragment
android:id="@+id/fragment_drawer"
android:name="com.idob.mysoccer.ui.DrawerFragment"
android:layout_width="@dimen/navigation_drawer_width"
android:layout_height="match_parent"
android:layout_gravity="left|start" />
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)
我正在尝试实现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.
有任何想法吗?
在导航抽屉的 "交叉导航到较低层次结构级别之后的系统返回"部分中,他们说:
如果用户从导航抽屉导航到较低层级屏幕并且屏幕具有直接父级,则重置后退堆栈并且后退指向目标屏幕的父级.此返回行为与用户从通知导航到应用程序时的行为相同.

我知道可以通过使用FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_NEW_TASK启动活动来重置后台堆栈,但这似乎在这里不可用,因为它不会为Lower 1.1.1创建后台堆栈.
知道如何从堆栈中删除TopView2,同时在启动Lower 1.1.1时添加TopView1 - > Lower 1.1返回堆栈吗?考虑到导航抽屉文档中提到的这一点,我期待一个简单的解决方案.
我想用导航抽屉制作一个简单的应用程序,它可以打开其他视图(新闻,信息,图库,联系人等).所以我打开了最新的Android Studio,制作了一个与API8> API19兼容的新项目,以获得最大的覆盖面.
我选择了预设的导航抽屉并点击完成.我已经想出要更改导航抽屉中项目的名称,但是如何让这些项目重定向到新视图?
我已经尝试将setOnItemClickListener实现到MainActivity中,如导航抽屉网站在http://developer.android.com上所述.但我似乎无法弄清楚这一切是如何联系在一起的,它不会起作用.
tl; dr:我需要帮助让导航抽屉中的项目启动一个新的视图/片段,并可能解释它是如何工作的.
这是应用程序项目(Android Studio)https://www.dropbox.com/s/qfz9oul62dzt3rr/NTI_SHOWCASE.zip
MainActivity.java
package com.christianarne.ntishowcase;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.text.Html;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.support.v4.widget.DrawerLayout;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity
implements NavigationDrawerFragment.NavigationDrawerCallbacks {
private static final int SETTINGS_RESULT = 1;
/**
* Fragment …Run Code Online (Sandbox Code Playgroud) 我正在努力让导航抽屉项目注册并开始和意图进行新的活动.抽屉打开正常并正确显示但是当我点击列表中的项目时没有任何反应.这是我从谷歌教程中获取的代码.
mTitle = mDrawerTitle = getTitle();
mTitles = getResources().getStringArray(R.array.menu_items);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
// set a custom shadow that overlays the main content when the drawer opens
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
// set up the drawer's list view with items and click listener
mDrawerList.setAdapter(new ArrayAdapter<String>(this,
R.layout.drawer_list_item, mTitles));
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
// enable ActionBar app icon to behave as action to toggle nav drawer
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
// ActionBarDrawerToggle ties together the the proper interactions
// between the sliding drawer and …Run Code Online (Sandbox Code Playgroud) 我尝试了从新的android支持设计库中的navigationView.我想要一个动态的headerview.基本上,我的标题视图将显示当天的报价.我喜欢大约10个引号,我想随机选择一个引用并在headerView的textview中显示.我还想为headerView添加onClick方法.
现在,我没有看到任何以编程方式更改headerview布局的可能性.有任何建议来实现吗?
android navigation-drawer android-design-library navigationview androiddesignsupport
我是Android的新手,并通过以下
示例学习如何在Android中创建片段:片段导航抽屉
在菜单项和添加导航标题之间导航之间的代码包含一种方法getActivity().
由于作者没有提到粘贴此代码的位置,我粘贴在我的MainActivity.java文件中
菜单项之间的导航和添加导航标题之间的代码是否由我粘贴在正确的位置?
在方法中selectDrawerItem(MenuItem menuItem)有一个评论// Create a new fragment and specify the planet to show based on position
作者希望我在这里添加一些东西.
I am updating my app to Navigation Architecture Components and I see that it has a lag replacing fragments which is visible in the NavigationDrawer that does not close smoothly.
Until now, I was following this approach:
https://vikrammnit.wordpress.com/2016/03/28/facing-navigation-drawer-item-onclick-lag/
所以我导航onDrawerClosed而不是进入onNavigationItemSelected以避免故障。
这是一个非常普遍的问题,但它又回来了。使用导航组件,它再次滞后,我没有看到在onDrawerClosed.
这些是导航组件之前的一些旧答案
DrawerLayout 的项目点击 - 什么时候更换片段合适?
非常感谢。
android navigation-drawer navigationview android-architecture-navigation