我在我的导航抽屉中使用支持NavigationView来显示项目菜单。将ActionView设置为支持NavigationView中的项目不显示
<android.support.design.widget.NavigationView
android:id="@+id/drawer_navigation"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@drawable/drawable_background"
app:headerLayout="@layout/drawer_header"
app:itemBackground="@drawable/drawer_item_background"
app:itemIconTint="@color/drawer_item"
app:itemTextColor="@color/drawer_item"
app:menu="@menu/drawer"
app:theme="@style/Text.DrawerItem"/>
我想显示菜单项旁边的连接请求计数器。
我试图设置actionLayout
在XML菜单定义这样
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<group android:checkableBehavior="single">
...
<item
android:id="@+id/navigation_requests"
android:icon="@drawable/ic_swap_horiz_24dp"
android:title="@string/connect_menu_connection_requests"
app:actionLayout="@layout/connection_request_counter"
app:showAsAction="always"/>
...
</group>
</menu>
的connection_request_counter.xml
的ActionView
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:textColor="@color/brand_blue"
android:text="5"/>
的布局,但在这一点上,我不能看到5号旁该项目。
我试图设置ActionLayout编程方式,以及:
MenuItemCompat.setActionView(mMenu.findItem(R.id.navigation_requests), R.layout.connection_request_counter);
但仍没有运气。
我可以参考的TextView像
final TextView connectionRequestCounterView
= (TextView) MenuItemCompat.getActionView(mMenu.findItem(R.id.navigation_requests));
这实际上返回一个TextView实例,但即使我设置文本给它,我不能看到任何布局。这可能与我正在设计菜单项目的事实有关吗? (我设置文本颜色,色调和背景的菜单项)
这里是我的风格:
<style name="Text.DrawerItem">
<item name="android:textColor">@color/text_color_dark_grey</item>
<item name="android:textSize">@dimen/text_size_default</item>
<item name="android:clickable">false</item>
<item name="android:textColorLink">@color/text_color_dark_grey</item>
<item name="fontPath">@string/font_aller_light</item>
<!--<item name="android:background">@color/background_activity_default</item>-->
<!--<item name="background">@color/background_activity_default</item>-->
</style>
drawer_item_background.xml
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--To override the default grey background for selected item-->
<item android:drawable="@android:color/transparent" android:state_checked="true"/>
<item android:drawable="@android:color/transparent"/>
</selector>
和drawer_drawablbe.xml
:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@color/background_activity_default"/>
</shape>
</item>
<item
android:bottom="24dp"
android:left="16dp">
<bitmap
android:gravity="left|bottom"
android:src="@drawable/my_drawer_logo"/>
</item>
</layer-list>
在哪里@drawable/my_drawer_logo
是一个不同密度的PNG。
任何其他想法为什么我不能看到动作视图?
我试图重新创建问题,但是我没有运行代码的问题。你可以分享'@ style/Text.DrawerItem'吗? – OYRM
事实上,继续创建这个问题没有成功,你可以使用“@ drawable/drawer_item_background”和“@ drawable/drawable_background”吗? – OYRM
@OYRM非常感谢您的关注。我已经发布了我的样式和背景可绘画。但是,我试图删除背景drawables并没有帮助。 –