Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为android中嵌入在选项卡视图中的不同片段设置不同的布局_Android_Android Layout_Android Fragments - Fatal编程技术网

如何为android中嵌入在选项卡视图中的不同片段设置不同的布局

如何为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() {

我目前正在尝试创建一个选项卡视图,其中每个选项卡打开一个不同的布局。我正在使用android.support.design.widget.TabLayout,并使用适配器成功地将其与pagerView链接。现在在myFragment类中,如果我调用onCreateView并膨胀布局,布局(fragment_main)将显示在所有选项卡中

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欢迎你