工作。我正在使用抽屜NavigationView
並且在其中具有app:actionLayout
屬性定向到包含TextView
一個LinearLayout
的Menu
一個項目,而TextView
具有財產android:visibility="invisible"
。當點擊Menu
中的item
時,我想要這個textview
可見。但它不起作用,我添加了Toast
來檢查點擊偵聽器是否正常工作,並且發現點擊偵聽器正在工作,但是textView
不可見。setVisibility不DrawerNavigation
這裏是點擊監聽器(活動佈局的名字是:main_activity.xml
):
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.nav_kitchen_key:
View kitchenKeyLayout = getLayoutInflater().inflate(R.layout.nav_kitchen_key, null);
TextView kitchenKeyTextView = (TextView)kitchenKeyLayout.findViewById(R.id.show_kitchen_key);
kitchenKeyTextView.setVisibility(View.VISIBLE);
break;
}
return true;
}
});
這裏是Menu item
:
<item
android:id="@+id/nav_kitchen_key"
android:title="Kitchen Key"
android:icon="@drawable/if_key"
app:actionLayout="@layout/nav_kitchen_key" />
我的財產NU項目app:actionLayout
引導到nav_kitchen_key.xml
這裏是nav_kitchen_key.xml
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/show_kitchen_key"
android:textColor="@color/white"
android:text="2592"
android:visibility="invisible"
android:background="@drawable/kitchen_key_background"/>
</LinearLayout>
'View kitchenKeyLayout = item.getActionView();'工作正常。如果它需要像在答案中提供的LinearLayout一樣投射,它們之間是否有區別。 –
item.getActionView()將僅返回視圖,只要您不打算使用LinearLayout的屬性,則可以使用View。我只是補充一點,確保你的XML佈局的根視圖。 –