片段替换不起作用

时间:2018-01-27 18:10:57

标签: java android android-fragments

我有一个正常工作的BottomMenu。问题是,如果我想通过Buttonclick从其中一个菜单片段切换到新的片段(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);
}

由于

1 个答案:

答案 0 :(得分:0)

在评论中提供的链接中,布局xml包含FrameLayout

参见代码

在文章中也说了

  

具有ID @ + id / frame的FrameLayout是用于加载我们的占位符UI   片段。

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

建议始终使用framelayout作为容器来替换片段。如果您不想大幅更改代码,可以尝试在ViewPager中添加相同大小的FrameLayout。但是,如果它仍然不起作用,我认为正确的方法是摆脱你的viewpager,只需在你的framelayolut容器内点击onbottommenu点击片段。这是一个伟大的工作 article的链接。我自己用过它。