【问题标题】:Reusing fragment and get tab position in android studio在android studio中重用片段并获取标签位置
【发布时间】:2016-08-31 05:27:28
【问题描述】:

我有一个选项卡式应用程序。所有选项卡中的布局都相同。但是根据json响应内容会有所不同。所以我正在尝试创建单个片段并在所有视图中重用。但我不知道如何获得标签位置。这样我就可以调用不同的网络服务了。

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    // Inflate the layout for this fragment

    View view = inflater.inflate(R.layout.fragment_fragment_all_employee, container, false);
    recyclerView_allemp = (RecyclerView) view.findViewById(R.id.recyclerview_allemp);
    recyclerView_allemp.setLayoutManager(new LinearLayoutManager(getActivity()));
// need to get the tabposition 
    new EmployeeTask().execute("http://something.com");
    return view;
} 

ViewPager oncreate :

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_activity_employee_screen);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    mViewPager = (ViewPager) findViewById(R.id.container);
    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);

    tabLayout.addTab(tabLayout.newTab().setText("ALL EMPLOYEES"));
    tabLayout.addTab(tabLayout.newTab().setText("MALE EMPLOYEES"));
    tabLayout.addTab(tabLayout.newTab().setText("FEMALE EMPLOYEES"));
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);

    final ViewPager viewPager= (ViewPager) findViewById(R.id.container);
    final PagerAdapter adapter=new PagerAdapter(getSupportFragmentManager(),tabLayout.getTabCount());
    viewPager.setAdapter(adapter);
    viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
    tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener(){

        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            viewPager.setCurrentItem(tab.getPosition());
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {

        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {

        }
    });
}

【问题讨论】:

  • 你在使用 ViewPager 吗?
  • 是的。我是。用 viewpager 更新了代码

标签: android android-studio android-fragments android-tabbed-activity


【解决方案1】:

使用下面的代码你可以得到你的viewpager的当前位置:

int position = mViewPager.getCurrentItem();
Fragment fragment = adapter.getItem(position);

因此,您可以在这里根据位置决定与该片段有什么关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    相关资源
    最近更新 更多