Java 如何隐藏特定片段上的视图
我想通过设置Java 如何隐藏特定片段上的视图,java,android,android-fragments,android-viewpager,Java,Android,Android Fragments,Android Viewpager,我想通过设置drawerGrid.setVisibility(View.GONE)来隐藏GridView当ViewPager位于特定布局上时。我需要实现一个onPageListener还是有一个更简单的选项 Launcher.java Fragment1.java Fragment2.java 您可以通过两种方式实现这一点: 正如您使用addOnPageChangedListener所述 当片段对用户可见时使用回调 如何确定片段何时在ViewPager中可见: 试试这个 public cla
drawerGrid.setVisibility(View.GONE)来隐藏GridView代码>当ViewPager位于特定布局上时。我需要实现一个onPageListener
还是有一个更简单的选项
Launcher.java
Fragment1.java
Fragment2.java
您可以通过两种方式实现这一点:
正如您使用addOnPageChangedListener所述
当片段对用户可见时使用回调
如何确定片段何时在ViewPager中可见:
试试这个
public class MyFragment extends Fragment {
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
//hide view here
}
else {
}
}
}
setUserVisibleHint
向系统设置一个提示,提示用户当前是否可以看到此片段的UI。此提示默认为true,并且在片段实例状态save和restore之间是持久的
此处isVisibleToUser
boolean:如果用户当前可以看到此片段的UI,则返回true(默认值);如果用户不可以看到,则返回false。是,使用addonpagechange listenerOk,我会试一试。是的,当viewpager位于特定片段上时…setUserVisibleHint
将返回true。因此,您知道该片段当前可见,因为您有两个片段必须同时覆盖…setUserVisibleHint
函数。很抱歉,我误解了您的意思。谢谢,我想这是另一个选择。
public class PagerAdapter extends FragmentPagerAdapter {
public PagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int arg0) {
switch (arg0) {
case 0:
return new Fragment1();
case 1:
return new Fragment2();
default:
break;
}
return null;
}
@Override
public int getCount() {
return 2;
}
}
public class Fragment1 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.activity_apps,container,false);
}
}
public class Fragment2 extends Fragment {
ViewPager viewpager;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.activity_homescreen,container,false);
}
}
public class MyFragment extends Fragment {
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
//hide view here
}
else {
}
}
}