Android 如何在第一个片段选项卡中隐藏工具栏、状态栏和表格布局,如快照聊天全屏片段
我有3个片段,当编辑我的代码后,它工作,但不完全是我想要的,我想要像快照聊天,滑动模式,当我再次更改我的片段时,我得到第一个标签名,但我不想再次显示我的标签一个标签名,请任何人帮助我如何得到这个 下面是我的代码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
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中最新的支持库urbuild.gradle
。我正在使用这些compile'com.android.support:appcompat-v7:23.1.1'
,compile'com.android.support:design:23.1.1'
,我没有收到这样的错误。是的,我也在使用相同的库,但我仍然收到了错误error@EricB试着做一个干净的构建。是的,它可以工作,但那不是我的要求,我知道编辑了我的第一个标签,如snapchat片段全屏片段,但仍然显示标签名@Eric B