如何为android中嵌入在选项卡视图中的不同片段设置不同的布局
我目前正在尝试创建一个选项卡视图,其中每个选项卡打开一个不同的布局。我正在使用android.support.design.widget.TabLayout,并使用适配器成功地将其与pagerView链接。现在在myFragment类中,如果我调用onCreateView并膨胀布局,布局(fragment_main)将显示在所有选项卡中如何为android中嵌入在选项卡视图中的不同片段设置不同的布局,android,android-layout,android-fragments,Android,Android Layout,Android Fragments,我目前正在尝试创建一个选项卡视图,其中每个选项卡打开一个不同的布局。我正在使用android.support.design.widget.TabLayout,并使用适配器成功地将其与pagerView链接。现在在myFragment类中,如果我调用onCreateView并膨胀布局,布局(fragment_main)将显示在所有选项卡中 public static class MyFragment extends Fragment { public MyFragment() {
public static class MyFragment extends Fragment {
public MyFragment() {
}
public static MyFragment newInstance(int pageNumber) {
MyFragment myFragment = new MyFragment();
return myFragment;
}
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,false);
return rootView;
}
}
我有3个片段连接3个标签。现在,如何为每个片段设置不同的布局
我的适配器类是
class MyPagerAdapter extends FragmentStatePagerAdapter {
String[] tabs;
public MyPagerAdapter(FragmentManager fm) {
super(fm);
tabs=getResources().getStringArray(R.array.tabs);
}
@Override
public Fragment getItem(int position) {
NavigationActivity.MyFragment myFragment = NavigationActivity.MyFragment.newInstance(position);
return myFragment;
}
@Override
public int getCount() {
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
return tabs[position];
}
}
请转到这个我认为这个可以帮你--请转到这个我认为这个可以帮你--请转到这个我认为这个可以帮你--请转到这个我认为这个可以帮你--你在下面的方法中为所有位置传递相同的片段,这导致了问题,
@Override
public Fragment getItem(int position) {
NavigationActivity.MyFragment myFragment = NavigationActivity.MyFragment.newInstance(position);
return myFragment;
}
对于解决方案,您必须为不同的位置返回不同的片段,或者至少使用不同的布局返回不同的片段
ArrayList< Fragment > tabFragments = new ArrayList<Fragment>();
fragments.add(new FragmentA());
fragments.add(new FragmentB());
fragments.add(new FragmentC());
@Override
public Fragment getItem(int position) {
return tabFragments.get(position);
}
ArrayListtabFragments=newarraylist();
添加(新的FragmentA());
添加(新的FragmentB());
添加(新的FragmentC());
@凌驾
公共片段getItem(int位置){
返回tabFragments.get(位置);
}
再说一遍
我发现下面提到的博客非常有用。这里描述了每个步骤。它正在使用TabListener。如果实现与您正在寻找的不一定相同,但您可能会得到一个很好的概述
Android片段选项卡示例:
您在下面的方法中为所有位置传递相同的片段,这导致了问题
@Override
public Fragment getItem(int position) {
NavigationActivity.MyFragment myFragment = NavigationActivity.MyFragment.newInstance(position);
return myFragment;
}
对于解决方案,您必须为不同的位置返回不同的片段,或者至少使用不同的布局返回不同的片段
ArrayList< Fragment > tabFragments = new ArrayList<Fragment>();
fragments.add(new FragmentA());
fragments.add(new FragmentB());
fragments.add(new FragmentC());
@Override
public Fragment getItem(int position) {
return tabFragments.get(position);
}
ArrayListtabFragments=newarraylist();
添加(新的FragmentA());
添加(新的FragmentB());
添加(新的FragmentC());
@凌驾
公共片段getItem(int位置){
返回tabFragments.get(位置);
}
再说一遍
我发现下面提到的博客非常有用。这里描述了每个步骤。它正在使用TabListener。如果实现与您正在寻找的不一定相同,但您可能会得到一个很好的概述
Android片段选项卡示例:
您在下面的方法中为所有位置传递相同的片段,这导致了问题
@Override
public Fragment getItem(int position) {
NavigationActivity.MyFragment myFragment = NavigationActivity.MyFragment.newInstance(position);
return myFragment;
}
对于解决方案,您必须为不同的位置返回不同的片段,或者至少使用不同的布局返回不同的片段
ArrayList< Fragment > tabFragments = new ArrayList<Fragment>();
fragments.add(new FragmentA());
fragments.add(new FragmentB());
fragments.add(new FragmentC());
@Override
public Fragment getItem(int position) {
return tabFragments.get(position);
}
ArrayListtabFragments=newarraylist();
添加(新的FragmentA());
添加(新的FragmentB());
添加(新的FragmentC());
@凌驾
公共片段getItem(int位置){
返回tabFragments.get(位置);
}
再说一遍
我发现下面提到的博客非常有用。这里描述了每个步骤。它正在使用TabListener。如果实现与您正在寻找的不一定相同,但您可能会得到一个很好的概述
Android片段选项卡示例:
您在下面的方法中为所有位置传递相同的片段,这导致了问题
@Override
public Fragment getItem(int position) {
NavigationActivity.MyFragment myFragment = NavigationActivity.MyFragment.newInstance(position);
return myFragment;
}
对于解决方案,您必须为不同的位置返回不同的片段,或者至少使用不同的布局返回不同的片段
ArrayList< Fragment > tabFragments = new ArrayList<Fragment>();
fragments.add(new FragmentA());
fragments.add(new FragmentB());
fragments.add(new FragmentC());
@Override
public Fragment getItem(int position) {
return tabFragments.get(position);
}
ArrayListtabFragments=newarraylist();
添加(新的FragmentA());
添加(新的FragmentB());
添加(新的FragmentC());
@凌驾
公共片段getItem(int位置){
返回tabFragments.get(位置);
}
再说一遍
我发现下面提到的博客非常有用。这里描述了每个步骤。它正在使用TabListener。如果实现与您正在寻找的不一定相同,但您可能会得到一个很好的概述
Android片段选项卡示例:
在getItem()
方法写入中
Fragment frgmt = null;
switch (position) {
case 0:
frgmt = new fragment1(Context);
break;
case 1:
frgmt = new fragment2(Context);
break;
case 2:
frgmt = new fragment3(Context);
break;
default:
break;
}
return frgmt;
然后创建这些片段及其各自的布局。在getItem()
方法write中
Fragment frgmt = null;
switch (position) {
case 0:
frgmt = new fragment1(Context);
break;
case 1:
frgmt = new fragment2(Context);
break;
case 2:
frgmt = new fragment3(Context);
break;
default:
break;
}
return frgmt;
然后创建这些片段及其各自的布局。在getItem()
方法write中
Fragment frgmt = null;
switch (position) {
case 0:
frgmt = new fragment1(Context);
break;
case 1:
frgmt = new fragment2(Context);
break;
case 2:
frgmt = new fragment3(Context);
break;
default:
break;
}
return frgmt;
然后创建这些片段及其各自的布局。在getItem()
方法write中
Fragment frgmt = null;
switch (position) {
case 0:
frgmt = new fragment1(Context);
break;
case 1:
frgmt = new fragment2(Context);
break;
case 2:
frgmt = new fragment3(Context);
break;
default:
break;
}
return frgmt;
然后创建这些片段及其各自的布局。创建3个片段(子类)和3个布局(xml)files@MuhammadBabar你能给出一个代码片段来创建3个片段(子类)和3个布局(xml)吗files@MuhammadBabar你能给出一个代码片段来创建3个片段(子类)和3个布局(xml)吗 files@MuhammadBabar你能给出一个代码片段来创建3个片段(子类)和3个布局(xml)吗files@MuhammadBabar您能给出一个代码段吗?它必须写在您的适配器中class@lijo050,很好,它必须写入适配器中class@lijo050,很好,它必须写入适配器中class@lijo050,很好,它必须写入适配器中class@lijo050欢迎你