Questions tagged «navigation-drawer»

移动应用程序中的导航抽屉是从屏幕边缘滑出并显示应用程序导航菜单的侧面板。将此标签仅用于与导航抽屉有关的编程问题。与导航抽屉相关的常规UX问题和其他基于意见的问题不在Stack Overflow的主题上。

5
导航抽屉(Google+与YouTube)
有谁知道如何像今天的一些顶级应用一样实现滑动菜单? 其他Stack Overflow 问题对此没有任何答案,因此,我正在尝试收集尽可能多的信息以帮助其他人。我在下面提到的所有应用程序在实现幻灯片菜单方面都做得很好。 1. Google Plus(截至12/7/7) 您只能通过单击左上角的G +徽标从第一个屏幕转到第二个屏幕。请注意,整个屏幕从其位置移动,并被微移到屏幕的右侧(包括操作栏)。要返回第一个屏幕,您可以将右侧滑回焦点,也可以再次单击G +图标。 2. YouTube(截至2012年7月7日) 您可以使用两种方法从第一屏幕转到第二屏幕。单击左上角的YouTube徽标,也可以使用滑动手势将其向右移动。这已经与G +应用不同。其次,您可以看到操作栏保持放置状态(与G +不同)。最后,要恢复原始屏幕,它的工作方式就像G +。


18
导航抽屉:如何在启动时设置所选项目?
我的代码运行完美:每次单击导航抽屉中的项目时,都会选中该项目。 当然,我想使用默认片段(主页)启动应用程序,但是Navigation Drawer没有选择该项。如何以编程方式选择该项目? public class BaseApp extends AppCompatActivity { //Defining Variables protected String LOGTAG = "LOGDEBUG"; protected Toolbar toolbar; protected NavigationView navigationView; protected DrawerLayout drawerLayout; private DateManager db = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.base_layout); navigationView = (NavigationView) findViewById(R.id.navigation_view); // set the home/dashboard at startup FragmentTransaction fragmentTransaction …

12
在不同活动中使用相同的导航抽屉
我做了一个工作的导航抽屉,就像在developer.android.com网站上的教程中显示的那样。但是现在,我想使用一个在NavigationDrawer.class中创建的导航抽屉,用于我的应用程序中的多个Activity。 我的问题是,如果这里有人可以做一点教程,它说明了如何将一个导航抽屉用于多个活动。 我首先在这个关于多个活动的 Answer 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 …

12
使用片段时在Android导航抽屉图像和Up插入符之间切换
当使用导航抽屉时,Android开发人员建议在ActionBar中“仅导航抽屉中表示的那些屏幕实际上应该具有导航抽屉图像”,而“所有其他屏幕都具有传统的上克拉”。 有关详细信息,请参见此处:http: //youtu.be/F5COhlbpIbY 我正在使用一项活动来控制片段的多个级别,并且可以使Navigation Drawer图像在所有级别上显示和运行。 创建较低级别的片段时,我可以调用ActionBarDrawerToggle setDrawerIndicatorEnabled(false)来隐藏导航抽屉图像并显示Up插入符号 LowerLevelFragment lowFrag = new LowerLevelFragment(); //disable the toggle menu and show up carat theDrawerToggle.setDrawerIndicatorEnabled(false); getSupportFragmentManager().beginTransaction().replace(R.id.frag_layout, lowFrag, "lowerFrag").addToBackStack(null).commit(); 我遇到的问题是,当我导航回到Up克拉的顶层片段时,仍然显示而不是原始的Navigation Drawer图像。关于如何“刷新”顶层片段上的ActionBar以重新显示导航抽屉图像的任何建议? 解 汤姆的建议对我有用。这是我所做的: 主要活动 此活动控制应用程序中的所有片段。 在准备替换其他片段的新片段时,我setDrawerIndicatorEnabled(false)像这样设置DrawerToggle : LowerLevelFragment lowFrag = new LowerLevelFragment(); //disable the toggle menu and show up carat theDrawerToggle.setDrawerIndicatorEnabled(false); getSupportFragmentManager().beginTransaction().replace(R.id.frag_layout, lowFrag).addToBackStack(null).commit(); 接下来,在的替代中onBackPressed,我通过将DrawerToggle设置为如下来还原了上述内容setDrawerIndicatorEnabled(true): @Override …

13
如何在新的NavigationView中创建一个简单的分隔线?
Google NavigationView在设计支持库版本22.2.0中引入,您可以使用菜单资源非常轻松地创建抽屉。 如何在两个项目之间创建一条简单的分隔线?将项目分组不起作用。创建子项部分的确会创建分隔线,但是它需要标题,而我并不需要。 任何帮助,将不胜感激。

11
无法捕获工具栏主页按钮单击事件
我已经实现了最新的appcompat库并使用Toolbaras操作栏。但是问题是我无法捕捉到主页按钮/汉堡图标点击事件。我已经尝试并查看了所有内容,但似乎没有发现类似的问题。 这是我的Activity课: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); // Set up the drawer. navDrawerFragment = (NavigationDrawerFragment) getSupportFragmentManager() .findFragmentById(R.id.navigation_drawer); navDrawerFragment.setUp( R.id.navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), toolbar); } 这是我的NavigationDrawerFragment类: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState != null) { currentSelectedPosition = savedInstanceState.getInt( STATE_SELECTED_POSITION); fromSavedInstanceState = true; } …

4
如何在Android的导航抽屉中添加一个分隔符?
我有一个像这样的导航抽屉。我想添加一个部分分隔符(如分隔Neptune的行)。看起来很简单,但我在网上找不到对我的案子有用的任何东西。 这是我的MainActivity: public class MainActivity extends Activity { private DrawerLayout mDrawerLayout; private ListView mDrawerList; private ActionBarDrawerToggle mDrawerToggle; private CharSequence mDrawerTitle; private CharSequence mTitle; private String[] mPlanetTitles; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTitle = mDrawerTitle = getTitle(); mPlanetTitles = getResources().getStringArray(R.array.planets_array); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.left_drawer); …

12
如何在材料设计导航抽屉中更改汉堡图标的颜色
我正在关注这个例子 http://www.androidhive.info/2015/04/android-getting-started-with-material-design/ 在此示例中,它显示的是汉堡图标为白色,我想对其进行自定义并使其为黑色,但是我无法找到有关如何更改它的任何内容,有人可以告诉我如何对其进行自定义吗? 表现 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="info.androidhive.materialdesign" > <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/MyMaterialTheme" > <activity android:name=".activity.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 风格 <resources> <style name="MyMaterialTheme" parent="MyMaterialTheme.Base"> </style> <style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> …


10
在状态栏上半透明的导航抽屉不起作用
我正在研究Android项目,正在实现导航抽屉。我正在阅读新的《材料设计规范》和《材料设计清单》。 规范说,滑出窗格应该漂浮在包括状态栏在内的所有其他内容之上,并且在状态栏上是半透明的。 我的导航面板在状态栏上,但是没有任何透明度。我已经按照Google开发人员博客专栏中的建议,遵循了该SO帖子中的代码,该链接位于上方的链接如何使用DrawerLayout在ActionBar / Toolbar和状态栏下方显示?。 下面是我的XML布局 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/my_drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <LinearLayout 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_height="wrap_content" android:layout_width="match_parent" android:minHeight="?attr/actionBarSize" android:background="@color/appPrimaryColour" /> </LinearLayout> <LinearLayout android:id="@+id/linearLayout" android:layout_width="304dp" android:layout_height="match_parent" android:layout_gravity="left|start" android:fitsSystemWindows="true" android:background="#ffffff"> <ListView android:id="@+id/left_drawer" android:layout_width="match_parent" android:layout_height="match_parent" android:choiceMode="singleChoice"></ListView> </LinearLayout> </android.support.v4.widget.DrawerLayout> 以下是我的应用主题 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/appPrimaryColour</item> <item name="colorPrimaryDark">@color/appPrimaryColourDark</item> <item name="colorAccent">@color/appPrimaryColour</item> <item name="windowActionBar">false</item> …

12
如何设置导航抽屉从右向左打开
首先,我知道这个问题以前曾出现在这里,但经过很多尝试,我仍然没有成功。我在Android Developers网站上处理示例 。 我试图将菜单设置为从右向左打开,而不是在示例中如何实现(从左向右)。另外,我想将打开的菜单按钮移到操作栏的右侧。我在这里也给出了一些答案,例如这个答案。 我尝试更改视图和布局的重力,但出现错误: 绝对重力未找到抽屉视图 您能帮我找出代码中的问题是什么,我应该更改什么才能将菜单设置为从右侧打开,并将操作栏按钮移至右侧? xml代码在这里: <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_gravity="right" android:layout_width="match_parent" android:layout_height="match_parent" > <FrameLayout android:id="@+id/content_frame" android:layoutDirection="rtl" android:layout_width="match_parent" android:layout_height="match_parent" /> <ListView android:id="@+id/left_drawer" android:layout_width="200dp" android:layout_height="match_parent" android:layout_gravity="right" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="10dp" android:background="#111"/> </android.support.v4.widget.DrawerLayout>


4
native.createnavigator工厂不是函数
我将在我的项目中设计一个抽屉导航。 我通过以下命令安装了该命令: npm install @react-navigation/drawer 然后将其导入 App.js import { createDrawerNavigator } from '@react-navigation/drawer'; import { NavigationContainer } from '@react-navigation/native'; 这是我的package.json内容: "@react-native-community/masked-view": "^0.1.6", "@react-navigation/drawer": "^5.0.0", "react": "16.9.0", "react-native": "0.61.5", "react-native-gesture-handler": "^1.5.6", "react-native-reanimated": "^1.7.0", "react-native-screens": "^2.0.0-beta.1", "react-native-view-shot": "^3.0.2", "react-navigation": "^4.1.1", "react-navigation-stack": "^2.1.0", 这是我的App.js内容: const App = () => { const Drawer = …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.