Android 如何知道用户正在查看哪个片段?
我已经使用ViewPager创建了一个表格布局。我有四个碎片Android 如何知道用户正在查看哪个片段?,android,Android,我已经使用ViewPager创建了一个表格布局。我有四个碎片 private void setupViewPager(ViewPager viewPager) { ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); adapter.addFragment(new AdminFragment(), "Admin Posts"); adapter.addFragment(n
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new AdminFragment(), "Admin Posts");
adapter.addFragment(new MemberFragment(), "Member Posts");
adapter.addFragment(new JoinFragment(), "Our Members");
adapter.addFragment(new WebFragment(), "Our Website");
viewPager.setAdapter(adapter);
}
如何从父活动中知道用户所在的片段
public class AdminFragment extends Fragment{
public AdminFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_admin, container, false);
}
}
您可以添加
addOnPageChangeListener
以了解页面何时更改,并使用onPageSelected
了解用户当前正在选择的页面
如果您需要知道在某些特定事件上没有页面更改,可以使用
viewPager.getCurrentItem()
来知道选择了哪个页面。在父活动中执行此操作
MyFragment myFragment = (MyFragment)getFragmentManager().findFragmentByTag("Admin Posts");
if (myFragment != null && myFragment.isVisible()) {
// add your code here
}
始终可以使用viewPager.getCurrentItem()获取当前查看项目的索引。。。我希望这有帮助。此方法将返回当前正在查看的片段用户的名称
public String returnCurrentFragmentName(){
int position = viewPager.getCurrentItem();
switch (position) {
case 0:
//fragment is
return "AdminFragment";
case 1:
//fragment is
return "MemberFragment";
case 2:
//fragment is
return "JoinFragment";
case 3:
//fragment is
return "WebFragment";
default:
return null;
}
祝您好运。从适配器重写getItem(),并返回片段。