Android 在自定义操作栏布局中显示/隐藏viewpager片段的按钮
我的应用程序中有四个片段,我打算使用一个自定义操作栏。其中两个片段在操作栏上有按钮。我有一个TabsActivity.class,它有一个加载四个片段的ViewPager 在我的TabsActivity和所有四个片段类中,我有一个方法setUpCustomActionBar,我调用它 我在onCreate中为TabsActivity调用此方法,在setMenuVisibility中为4个片段调用此方法 对于片段,我这样称呼它:Android 在自定义操作栏布局中显示/隐藏viewpager片段的按钮,android,android-layout,android-fragments,android-viewpager,Android,Android Layout,Android Fragments,Android Viewpager,我的应用程序中有四个片段,我打算使用一个自定义操作栏。其中两个片段在操作栏上有按钮。我有一个TabsActivity.class,它有一个加载四个片段的ViewPager 在我的TabsActivity和所有四个片段类中,我有一个方法setUpCustomActionBar,我调用它 我在onCreate中为TabsActivity调用此方法,在setMenuVisibility中为4个片段调用此方法 对于片段,我这样称呼它: @Override public void setMenuVisib
@Override
public void setMenuVisibility(boolean menuVisible) {
super.setMenuVisibility(menuVisible);
if (menuVisible){
if (getActivity() != null) {
this.setUpCustomActionBar(this.getActivity());
}
}
}
actionbar_custom.xml
我有两个问题:
我必须在每个片段中复制和重复这个方法。有没有避免代码重复的方法?
在第二个片段中,我将menupin设置为仅可见。在第三个片段中,我将menufilter设置为仅可见。在第一个和第四个片段中,不应该看到任何布局,但是当我加载TabsActivity时,我仍然可以在片段1上看到menufilter布局。我可以通过转到fragment2并切换到fragment1使其消失。在加载活动时,似乎没有为第一个默认片段调用SetMenuVisibility。
您可以创建类BaseFragment并在此处写入setMenuVisibility->然后从该类扩展4个片段
创建片段时,它不调用setMenuVisibility方法。只有当我们滚动viewPager时viewPager更改片段时,它才会调用setMenuVisibility。首先,actionbar以全视图显示。因此,在第一次,从activity中,我调用第一个片段来隐藏actionbar上的那些视图,它就工作了
这真的不能回答2.对不起。我登录了,结果不一样。创建片段时,它不调用setMenuVisibility方法。只有当我们滚动viewPager时viewPager更改片段时,它才会调用setMenuVisibility。首先,actionbar以全视图显示。所以在第一次,从活动中,我调用第一个片段来隐藏actionbar上的那些视图,它成功了。
@Override
public void setMenuVisibility(boolean menuVisible) {
super.setMenuVisibility(menuVisible);
if (menuVisible){
if (getActivity() != null) {
this.setUpCustomActionBar(this.getActivity());
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:background="@color/theme_light_blue">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical">
<TextView
android:id="@+id/it_regionname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Region_defined"
android:textColor="@color/white"/>
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@drawable/faq_arrow_down" />
</LinearLayout>
<RelativeLayout
android:id="@+id/rl_menu_map"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:visibility="gone"
android:gravity="center_vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/menu_icon_pin"
android:layout_alignParentRight="true"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_menu_filter"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:visibility="gone">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:src="@drawable/menu_icon_filter"/>
</RelativeLayout>
</LinearLayout>