我在我的導航抽屜中使用支持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並沒有幫助。 –