Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.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 Fragments - Fatal编程技术网

Android 如何在第一个片段选项卡中隐藏工具栏、状态栏和表格布局,如快照聊天全屏片段

Android 如何在第一个片段选项卡中隐藏工具栏、状态栏和表格布局,如快照聊天全屏片段,android,android-fragments,Android,Android Fragments,我有3个片段,当编辑我的代码后,它工作,但不完全是我想要的,我想要像快照聊天,滑动模式,当我再次更改我的片段时,我得到第一个标签名,但我不想再次显示我的标签一个标签名,请任何人帮助我如何得到这个 下面是我的代码 public class MainActivity extends AppCompatActivity { private TabLayout tabLayout; private ViewPager viewPager; int FIRST_PAGE=0; @Override pro

我有3个片段,当编辑我的代码后,它工作,但不完全是我想要的,我想要像快照聊天,滑动模式,当我再次更改我的片段时,我得到第一个标签名,但我不想再次显示我的标签一个标签名,请任何人帮助我如何得到这个

下面是我的代码

public class MainActivity extends AppCompatActivity {

private TabLayout tabLayout;
private ViewPager viewPager;
int FIRST_PAGE=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    viewPager = (ViewPager) findViewById(R.id.viewpager);
    setupViewPager(viewPager);
    viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            if (position == FIRST_PAGE) {
                getSupportActionBar().hide();
                tabLayout.setVisibility(View.GONE);
            } else {
                getSupportActionBar().show();
                tabLayout.setVisibility(View.VISIBLE);
            }
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });
    tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(viewPager);


}

private void setupViewPager(ViewPager viewPager) {
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
   adapter.addFragment(new Paea(),"one");
    adapter.addFragment(new SecMain(), "TWO");
    adapter.addFragment(new SecMain(), "THREE");
    viewPager.setAdapter(adapter);
}

class ViewPagerAdapter extends FragmentPagerAdapter {
    private final List<Fragment> mFragmentList = new ArrayList<>();
    private final List<String> mFragmentTitleList = new ArrayList<>();

    public ViewPagerAdapter(FragmentManager manager) {
        super(manager);
    }


    @Override
    public Fragment getItem(int position) {
        return mFragmentList.get(position);
    }

    @Override
    public int getCount() {
        return mFragmentList.size();
    }

    public void addFragment(Fragment fragment, String title) {
        mFragmentList.add(fragment);
        mFragmentTitleList.add(title);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return mFragmentTitleList.get(position);
    }



}
public类MainActivity扩展了AppCompatActivity{
私人摊位摊位;
私人视页机视页机;
int第一页=0;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
viewPager=(viewPager)findViewById(R.id.viewPager);
设置viewPager(viewPager);
viewPager.addOnPageChangeListener(新的viewPager.OnPageChangeListener(){
@凌驾
已滚动页面上的公共无效(int-position、float-positionOffset、int-positionOffsetPixels){
}
@凌驾
已选择页面上的公共无效(内部位置){
如果(位置==第一页){
getSupportActionBar().hide();
tabLayout.setVisibility(View.GONE);
}否则{
getSupportActionBar().show();
tabLayout.setVisibility(View.VISIBLE);
}
}
@凌驾
公共无效onPageScrollStateChanged(int状态){
}
});
tabLayout=(tabLayout)findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
}
专用无效设置ViewPager(ViewPager ViewPager){
ViewPagerAdapter适配器=新的ViewPagerAdapter(getSupportFragmentManager());
addFragment(新Paea(),“一”);
addFragment(新的SecMain(),“两个”);
addFragment(新的SecMain(),“三”);
viewPager.setAdapter(适配器);
}
类ViewPagerAdapter扩展了FragmentPagerAdapter{
私有最终列表MFFragmentList=new ArrayList();
私有最终列表MFFragmentTitleList=new ArrayList();
公共视图页面编辑器(碎片管理器){
高级经理;
}
@凌驾
公共片段getItem(int位置){
返回MFFragmentList.get(位置);
}
@凌驾
public int getCount(){
返回MFFragmentList.size();
}
public void addFragment(片段片段,字符串标题){
添加(片段);
MFFragmentTitleList.add(标题);
}
@凌驾
公共字符序列getPageTitle(int位置){
返回MFFragmentTitleList.get(位置);
}
}
当我添加下面的代码时,得到的输出与我想要的不完全一致,当我再次滑动到第二个选项卡时,他们的第一个选项卡名称得到了请任何人帮助如何隐藏它 下面是我的图片


如何在我的表格布局中隐藏一个选项卡名称

您可以将
OnPageChangeListener
添加到您的
查看页面
。然后在其
onPageSelected
方法中,您可以检查所选页面是否为第一页

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
             if(position == FIRST_PAGE) {
                  getSupportActionBar().hide();
                  tabLayout.setVisibility(View.GONE);
             }
             else {
                  getSupportActionBar().show();
                  tabLayout.setVisibility(View.VISIBLE);
             }
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

您可以将
OnPageChangeListener
添加到您的
ViewPager
。然后在其
onPageSelected
方法中,您可以检查所选页面是否为第一页

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
             if(position == FIRST_PAGE) {
                  getSupportActionBar().hide();
                  tabLayout.setVisibility(View.GONE);
             }
             else {
                  getSupportActionBar().show();
                  tabLayout.setVisibility(View.VISIBLE);
             }
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });

我发现这个错误无法解决addOnPageChangeListener@Ericb确保您在
build.gradle
中使用了最新的支持库。我使用的是
编译'com.android.support:appcompat-v7:23.1.1'
编译'com.android.support:design:23.1.1'
,我没有收到这样的错误。是的,我也使用了相同的li但我还是越来越error@EricB尝试进行干净的构建。是的,它正在工作,但这不是我的要求,我需要我的第一个选项卡,如snapchat fragment全屏片段,但它仍然显示选项卡名称@Eric Bi我收到此错误无法解决addOnPageChangeListener@Ericb确保您使用的是yo中最新的支持库ur
build.gradle
。我正在使用这些
compile'com.android.support:appcompat-v7:23.1.1'
compile'com.android.support:design:23.1.1'
,我没有收到这样的错误。是的,我也在使用相同的库,但我仍然收到了错误error@EricB试着做一个干净的构建。是的,它可以工作,但那不是我的要求,我知道编辑了我的第一个标签,如snapchat片段全屏片段,但仍然显示标签名@Eric B