我已经改进了Android Studio的Navigation Drawer Activity项目模板,该模板使用Toolbar,v7.app.ActionBarDrawerToggle和NavigationView而不是NavigationDrawerFragment(以及layout/fragment_navigation_drawer.xml).
它完美地工作.然后,我走得更远.我的导航抽屉项目处于沉浸式粘性(全屏)模式.
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
View decorationView = getWindow().getDecorView();
decorationView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
...
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
drawerToggle = new ActionBarDrawerToggle(
this,
drawerLayout,
R.string.navigation_drawer_open, /* "open drawer" description for accessibility */
R.string.navigation_drawer_close /* "close drawer" …Run Code Online (Sandbox Code Playgroud) android android-fullscreen navigation-drawer android-navigationview
如何设置长按一下监听器MenuItem?
我试过这个答案,但这个方法对我来说并不存在.有解决方案吗
码:
Menu menu = navigationView.getMenu();
MenuItem menuItem = menu.findItem(R.id.menu_item);
// TODO set a long click listener on the menuItem.
menuItem.setOnLongClickListener(...); // Method does not exist, any other solutions?
Run Code Online (Sandbox Code Playgroud)
编辑:我不想设置自定义ActionView,我想要长整型监听器MenuItem,而不需要自定义视图.
我有一个
<android.support.design.widget.NavigationView
app:menu="@menu/drawer"
/>
Run Code Online (Sandbox Code Playgroud)
使用以下菜单项:
<item
android:id="@+id/main_item"
android:icon="@drawable/ic_menu_main"
android:title="@string/app_name"/>
<group
android:id="@+id/some_group"
android:checkableBehavior="single"/>
<item
android:id="@+id/teams_item"
android:icon="@drawable/ic_menu_teams"
android:title="@string/teams"/>
Run Code Online (Sandbox Code Playgroud)
现在我想some_group在它之下或之下添加一个项目.
我试过了:
MenuItem mi = menu.add( R.id.soume_group, someId, NONE, "some name" );
Run Code Online (Sandbox Code Playgroud)
要么
MenuItem mi = menu.add( R.id.soume_group, someId, 2, "some name" );
Run Code Online (Sandbox Code Playgroud)
但是项目会添加到菜单的底部.
如何解决我的问题?
TIA
大家好我面临一个奇怪的问题.我添加Navigation View了我Activity的默认情况下,每当我启动应用程序时,第一个导航项目选择了一些背景颜色.
我想删除此功能.
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support:design:22.2.1'
}
Run Code Online (Sandbox Code Playgroud)
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( …Run Code Online (Sandbox Code Playgroud) 在Android Studio 2.1.2中,如果我创建默认导航活动,我会得到以下视图:
其中使用以下activity_main.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
layout="@layout/app_bar_main"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)
正如你所看到<android.support.design.widget.NavigationView/>的用途app:menu="@menu/activity_main_drawer",用于显示在菜单中定义的列表activity_main_drawer.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_camera"
android:icon="@drawable/ic_menu_camera"
android:title="Import" />
<item
android:id="@+id/nav_gallery"
android:icon="@drawable/ic_menu_gallery"
android:title="Gallery" />
<item
android:id="@+id/nav_slideshow"
android:icon="@drawable/ic_menu_slideshow"
android:title="Slideshow" />
<item
android:id="@+id/nav_manage"
android:icon="@drawable/ic_menu_manage"
android:title="Tools" />
</group>
<item android:title="Communicate">
<menu>
<item
android:id="@+id/nav_share"
android:icon="@drawable/ic_menu_share"
android:title="Share" />
<item
android:id="@+id/nav_send"
android:icon="@drawable/ic_menu_send"
android:title="Send" …Run Code Online (Sandbox Code Playgroud) java android expandablelistview navigationview android-navigationview
请 在任何人将其作为重复问题之前先阅读,因为它不是.
我使用了导航抽屉,底部导航栏和自定义操作栏.
底部导航栏和操作栏工作正常.导航抽屉还显示其下的菜单,但项目不可点击.
我已经尝试了所有相关的答案
导航抽屉项目单击不起作用
但我的问题还没有解决.调试部分没有错误.


仪表板活动
package com.vicky.sampleApp;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.RequiresApi;
import android.support.design.widget.BottomNavigationView;
import android.support.design.widget.NavigationView;
import android.support.v4.app.Fragment;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import android.support.v7.widget.Toolbar;
public class Dashboard extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
//android.app.ActionBar actionbar;
TextView textview;
TextView textviewTitle;
private ActionBar toolbar;
private DrawerLayout drawer;
private ActionBarDrawerToggle toggle;
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onCreate(Bundle …Run Code Online (Sandbox Code Playgroud) android navigation-drawer android-navigationview bottomnavigationview
我有一个DrawerLayout封闭的a NavigationView,这个布局活动作为我的应用程序中所有活动的通用导航抽屉.我app:menu在导航视图中提供菜单资源.我有一些菜单项,但我希望一个菜单项可折叠/可扩展,这样当我点击它时,它会展开以显示两个子菜单并在第二次点击时再次折叠.
我已经通过添加另一个子菜单添加<menu>里面的<item>,但不能使之收缩/扩张.
另外,我不想ExpandableListView用于我的目的.相反,我只需要在菜单资源文件中做一些调整.请指出我正确的方向.我搜索Google只是为了查找可折叠列表项的代码,博客和示例ExpandableListView,但是我需要它来使用NavigationView设计支持库中的设计小部件.
这是我的菜单文件代码:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_aboutus"
android:title="About Us" />
<item
android:id="@+id/nav_faq"
android:title="FAQs" />
<item
android:id="@+id/nav_share"
android:title="Share" />
<item
android:id="@+id/nav_myaccount"
android:title="My Account" />
<item
android:id="@+id/nav_legal"
android:title="Legal" >
<menu>
<item
android:id="@+id/nav_tnc"
android:title="Terms and Conditions" />
<item
android:id="@+id/nav_pp"
android:title="Privacy Policy" />
</group>
</menu>
</item>
</menu>
Run Code Online (Sandbox Code Playgroud)
我希望法律菜单项可以扩展,有两个子菜单项"条款和条件","隐私政策".
我搜索了所有的东西并进行了实验,但没有运气NavigationView.
itemIconTint,itemTextColor并itemBackground有效地工作ripple.但问题state selected不起作用selector drawable
我也创造drawable-v21并投入ripple_navigation_selector.xml
我的目标是当再次打开抽屉时,之前选择的项目应为黄色,例如.通知项目
NavigationView 在main_layout.xml中
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="250dp"
android:layout_height="match_parent"
android:layout_gravity="end"
android:background="@color/black"
app:headerLayout="@layout/header"
app:itemIconTint="@drawable/navigation_view_icon_tint_selector"
app:itemTextColor="@drawable/navigation_view_text_selector"
app:menu="@menu/drawer"
app1:itemBackground="@drawable/ripple_navigation_selector"
/>
Run Code Online (Sandbox Code Playgroud)
ripple_navigation_selector.xml 内 drawable-v21
<item
android:id="@android:id/mask"
android:drawable="@drawable/navigation_selector"/>
<item android:drawable="@drawable/navigation_selector"/>
Run Code Online (Sandbox Code Playgroud)
navigation_selector.xml 内 drawable-v21
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@color/left_light_yellow" android:state_pressed="true"></item>
<item android:drawable="@color/left_light_yellow" android:state_activated="true"></item>
<item android:drawable="@color/left_light_yellow" android:state_checked="true"></item>
<item android:drawable="@android:color/black"></item>
Run Code Online (Sandbox Code Playgroud)
颜色字符串命名 left_light_yellow
<color name="left_light_yellow">#F6CE20</color>
Run Code Online (Sandbox Code Playgroud) android rippledrawable android-5.1.1-lollipop android-navigationview
如何更改NavigationView菜单项文本颜色.我的menu.xml文件是,我也写
app:itemIconTint ="@ color/white"app:itemTextColor ="@ color/white"在我的布局中但它不起作用
<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)
<item
android:checked="false"
android:title="@string/popular">
<menu>
<item
android:id="@+id/tag1"
android:checked="false"
android:icon="@drawable/bird"
android:title="@string/tag1" />
<item
android:id="@+id/tag2"
android:checked="false"
android:icon="@drawable/rabbit"
android:title="@string/tag2" />
<item
android:id="@+id/tag3"
android:checked="false"
android:icon="@drawable/bird"
android:title="@string/tag3" />
<item
android:id="@+id/tag4"
android:checked="false"
android:icon="@drawable/rabbit"
android:title="@string/tag4" />
<item
android:id="@+id/tag5"
android:checked="false"
android:icon="@drawable/bird"
android:title="@string/tag5" />
<item
android:id="@+id/setting"
android:checked="false"
android:icon="@drawable/setting"
android:title="@string/setting" />
<item
android:id="@+id/rate"
android:checked="false"
android:icon="@drawable/rating"
android:title="@string/rate" />
</menu>
</item>
Run Code Online (Sandbox Code Playgroud)
我的NavigationView喜欢..
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@color/theme_primary"
app:headerLayout="@layout/layout_drawer_header"
app:itemIconTint="@color/white"
app:itemTextColor="@color/white"
app:menu="@menu/menu_main" />
Run Code Online (Sandbox Code Playgroud)