繁体   English   中英

片段替换不起作用

[英]Fragment replacing does not work

我有一个正常工作的BottomMenu。 问题是,如果我想通过Buttonclick从那些菜单“片段”之一切换到新的Fragment(switchtoallstudies()方法),它将仅切换到空白处。 我怎样才能解决这个问题?

public class Dashboard extends AppCompatActivity {

private TextView mTextMessage;
private AHBottomNavigation bottomNavigation;
private NoSwipePager viewPager;
private BottomBarAdapter pagerAdapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_dashboard);

    setupViewPager();

    bottomNavigation = (AHBottomNavigation) findViewById(R.id.bottom_navigation);

    addBottomNavigationItems();
    setBottomNavigationStyle();

    bottomNavigation.setCurrentItem(0);

    bottomNavigation.setOnTabSelectedListener(new AHBottomNavigation.OnTabSelectedListener() {
        @Override
        public boolean onTabSelected (int position, boolean wasSelected) {
            if (!wasSelected)
                viewPager.setCurrentItem(position);

            return true;
        }
    });

}

public void switchtoallstudies(){
    //getAlllStudies
    Frag_alle_studien fragallestudien = new Frag_alle_studien();

    //start up fragment
    getSupportFragmentManager().beginTransaction()
            .replace(R.id.fragdashcontainer, fragallestudien).commit();
}

private void setupViewPager() {
    viewPager = (NoSwipePager) findViewById(R.id.fragdashcontainer);
    viewPager.setPagingEnabled(false);
    pagerAdapter = new BottomBarAdapter(getSupportFragmentManager());

    pagerAdapter.addFragments(new Frag_Startseite());
    pagerAdapter.addFragments(new Frag_Frageboegen());
    pagerAdapter.addFragments(new Frag_Studien());
    pagerAdapter.addFragments(new Frag_Ergebnisse());
    pagerAdapter.addFragments(new Frag_Einstellungen());

    viewPager.setAdapter(pagerAdapter);
}

谢谢

在注释中提供的链接中,布局xml包含FrameLayout

看到代码

在文章中也有提到

ID为++ id / frame的FrameLayout是用于加载Fragment的占位符UI。

再次从链接中阅读您的文章!

建议始终使用框架布局作为容器来替换片段。 如果您不想彻底更改代码,可以尝试在ViewPager中以相同大小添加FrameLayout。 但是,如果仍然无法正常运行,我相信正确的方法是摆脱viewpager的影响,而只需替换在framelayolut容器内单击的内容就可以了。 这是一篇出色的工作 文章的链接。 我自己用过的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM