工作。我正在使用抽屉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布局的根视图。 –