标签: navigation-drawer

Android 抽屉式导航打不开

我检查了其他类似的帖子,但找不到解决方案。我在调用时遇到了空指针的问题getActionBar(),我似乎已经通过使用解决了这个问题getSupportActionBar()。我的应用程序现在可以运行,但我的导航抽屉无法打开。

这是我的基本活动,所有其他活动都扩展了此基本活动:

* This activity will add Navigation Drawer for our application and all the code related to navigation drawer.
 * We are going to extend all our other activites from this BaseActivity so that every activity will have Navigation Drawer in it.
 * This activity layout contain one frame layout in which we will add our child activity layout.  
 */
Run Code Online (Sandbox Code Playgroud)

这是 BaseActivity 视图的 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" >

    <FrameLayout
        android:id="@+id/content_frame"
        android:theme="@android:style/Theme.WithActionBar"
        android:layout_width="match_parent"
        android:layout_height="match_parent" …
Run Code Online (Sandbox Code Playgroud)

android navigation-drawer

1
推荐指数
1
解决办法
2983
查看次数

我的 homeAsUp 按钮在 android 中不起作用

我创建了一个导航抽屉活动,从主要活动中我启动了 2 个不同的活动。在这两个活动中,我都使用了 actionBar.setDisplayHomeAsUpEnabled(true); 启用 homeasup 按钮。我如何找到这些主页按钮的 ID,以便我可以在 onOptionsItemSelected 中使用它们?这是我的方法:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            Toast.makeText(this, "pressed1", Toast.LENGTH_SHORT).show();
            return true;
        }
        else if (id == R.id.home){
            Toast.makeText(this,"pressed2",Toast.LENGTH_SHORT).show();
            finish();
        }
        else{
            Toast.makeText(this,R.id.homeAsUp + " " + id + " …
Run Code Online (Sandbox Code Playgroud)

android android-studio navigation-drawer

1
推荐指数
1
解决办法
1026
查看次数

导航抽屉不显示汉堡包图标

在小应用程序中,我想使用导航抽屉,但左箭头键不起作用,汉堡包图标也不起作用...您能找出问题所在吗?

MainActivity.java

package com.example.bablu.zoo;

import android.content.res.Configuration;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity {

    private DrawerLayout mDrawerLayout;
    private ActionBarDrawerToggle mActionBarDrawerToggle;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        // For navigation bar
        if (getSupportActionBar() != null) {
            getSupportActionBar().setDisplayShowHomeEnabled(true);
        }
        getSupportActionBar().setHomeButtonEnabled(true);

        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mActionBarDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.drawer_opened, R.string.drawer_closed){
            @Override
            public void …
Run Code Online (Sandbox Code Playgroud)

android navigation-drawer

1
推荐指数
1
解决办法
3800
查看次数

Android 导航抽屉图标的颜色

有没有办法改变导航抽屉图标的颜色?我的意思是,即使我使用包含多种颜色的 png,应用程序中绘制的图标也只有一种颜色,并且我认为默认颜色是灰色,我可以将其设为彩色吗?

例如:

我想用于图标的 png 文件

这是我的 png 文件,我想将其用作图标,但是当我将它用作导航抽屉项目的图标时,它会像这样绘制:

在此输入图像描述

android android-drawable navigation-drawer material-design

1
推荐指数
1
解决办法
2714
查看次数

如何禁用导航抽屉菜单按钮?

当我Fragment通过单击NavigationDrawer菜单按钮移动到另一个按钮时,我想要什么,然后按钮应该被禁用。

因为addToBackStack();当一次又一次点击时,方法会在堆栈中添加多次。所以当我移动到另一个片段时想禁用它。

android menuitem android-fragments navigation-drawer

1
推荐指数
1
解决办法
7790
查看次数

删除导航抽屉中给定位置的项目

我的用户可以在我删除项目Navigation Drawer,他们选择他们希望哪一个要删除,它应该从菜单中删除。

到目前为止,这是我尝试这样做的方法:

// Should remove item at position 'which'
private void removeTab(int which) {
    NavigationView navView = (NavigationView) findViewById(R.id.nav_view);
    Menu menu = navView.getMenu();

    menu.removeItem(which + 1);
}
Run Code Online (Sandbox Code Playgroud)

但它不会删除该项目。

我不确定这removeItem应该如何工作,有没有办法Navigation Drawer使用它在菜单中的位置删除项目?

编辑:

我有隐藏项目的想法,但这是有问题的,因为我必须跟踪隐藏的项目数量才能隐藏下一个项目。(如果 Item1 和 Item2 被隐藏,则 Item3 在显示时仍处于位置 3 而不是 1)。

android navigation-drawer

1
推荐指数
1
解决办法
2586
查看次数

Android NaviagtionDrawer Item 文本对齐

我像这样创建了 NavigationView 我的导航视图截图

,这是我的 xml 代码

<RelativeLayout 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"
android:id="@+id/top_parent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".Dashbored">

<include
android:id="@+id/tool_bar"
layout="@layout/tool_bar">
</include>

<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/tool_bar"
android:elevation="7dp"
android:fitsSystemWindows="true"
tools:openDrawer="end">


<LinearLayout
android:id="@+id/linear_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">


<FrameLayout
android:id="@+id/frame_container"
android:layout_width="match_parent"
android:layout_height="match_parent">

<include layout="@layout/f_home_screen" />

</FrameLayout>


</LinearLayout>

<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="end"
android:background="#0284fe"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header"
app:itemBackground="@drawable/drawer_backg"
app:itemIconTint="@color/drawer_item"
app:itemTextAppearance="@style/NavDrawerTextStyle"
app:itemTextColor="@color/windowBackground"
app:menu="@menu/main_drawer" />


</android.support.v4.widget.DrawerLayout>
</RelativeLayout>   
Run Code Online (Sandbox Code Playgroud)

我想像这样设置项目文本对齐中心

我需要这样的输出

这是我的菜单 xml

<?xml version="1.0" encoding="utf-8"?><menu 
xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_inspec_rpt"
android:title="INSPECTION REPORTS"
/>
<item
android:id="@+id/nav_action"
android:title="ACTION ITEMS"
/>
<item
android:id="@+id/nav_appoint"
android:title="APPOINTMENTS" />
<item …
Run Code Online (Sandbox Code Playgroud)

android android-xml android-studio navigation-drawer

1
推荐指数
1
解决办法
4731
查看次数

Android 切换导航汉堡图标到返回图标

我已经从本教程中实现了导航抽屉:https : //www.journaldev.com/9958/android-navigation-drawer-example-tutorial

这里的问题是如何更改 Fragment 中的 ActionBar,因此当我转到 Fragment 时,它会在 ActionBar 上向我显示后退箭头而不是汉堡图标,并且当单击后退箭头图标时,它将离开 Fragment 和 ActionBar应该回到第一个状态。

android navigation-drawer

1
推荐指数
1
解决办法
1983
查看次数

拦截 NavigationUI.onNavDestinationSelected() 以使用“inclusive = true”使 backstack 弹出

我已经连接了我的菜单 xml 和 Android 导航组件navigation_view.setupWithNavController(navController),一切正常。我的菜单的一部分是注销选项。如果用户选择此导航目的地,应用程序应导航到AuthorizationFragment 并将返回堆栈弹出到此 Fragment 并将 inclusive 设置为 true以删除所有先前的Fragment

我查看了导航库的代码,并达到了应该发生这种情况的地步:

NavigationUI.onNavDestinationSelected():

/**
 * Attempt to navigate to the {@link NavDestination} associated with the given MenuItem. This
 * MenuItem should have been added via one of the helper methods in this class.
 *
 * <p>Importantly, it assumes the {@link MenuItem#getItemId() menu item id} matches a valid
 * {@link NavDestination#getAction(int) action id} or
 * {@link NavDestination#getId() destination id} to be navigated to.</p>
 * <p> …
Run Code Online (Sandbox Code Playgroud)

android navigation-drawer android-navigation android-navigationview android-jetpack

1
推荐指数
1
解决办法
2372
查看次数

如何将图标添加到导航抽屉

我知道如何将图标添加到自定义抽屉导航中,我想知道是否有任何方法可以直接向</Drawer.Navigator>or添加图标<Drawer.Screen/>

例如这是我的代码:

const MyDrawer=()=>{

const Drawer=createDrawerNavigator();

return(

<NavigationContainer>
  <Drawer.Navigator
  initialRouteName='Main Page'
  >

<Drawer.Screen  name='Main Page' component={MainFunc} />


</Drawer.Navigator>

</NavigationContainer>
)
Run Code Online (Sandbox Code Playgroud)

navigation-drawer reactjs react-native react-navigation

1
推荐指数
1
解决办法
5705
查看次数