问题是: 我创建了一个带有一个屏幕的应用程序,其中包含ViewPager(保持卡片)和BottomNavigationView。但现在我需要添加功能来切换到“关于”屏幕。
问题: 如何切换到“约”布局并返回最佳方式? “about”只是简单的布局,几乎没有textViews(不需要在屏幕之间传输数据)
我试图重写我的类并创建顶级层次的Main类,它将容纳另一个ViewPager,它将保存Fragments(Viewpager带有卡片和“about”布局)并在它们之间切换,但此刻它没有'真的有用,也许有更简单的方法在“家”的顶部显示“关于”,然后回来?
我的NavigationItemSelectedListener位于MainActivity中:
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
// change screen
return true;
case R.id.navigation_about:
// change screen
return true;
}
return false;
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// other code here ...
BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
// other code here ...
}
答案 0 :(得分:0)
而不是ViewPager
使用FrameLayout
。然后创建两个片段。一个片段包含ViewPager
,另一个片段用于关于视图。在BottomNavigationView
点击后,只需替换合适的片段。
希望它有所帮助。 :)
答案 1 :(得分:0)
找到了一种可能的方法:
在main_layout中我创建了constraintLayout:
<android.support.constraint.ConstraintLayout
android:id="@+id/aboutLayer"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@android:color/holo_purple" <--- BACKGROUND NOT TRANSPARENT
android:visibility="invisible" <--- INVISIBLE
app:layout_constraintBottom_toTopOf="@+id/navigation"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
</android.support.constraint.ConstraintLayout>
并且在监听器中只需更改图层的可见性
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
// hide about
aboutInfo.setVisibility(View.INVISIBLE);
return true;
case R.id.navigation_about:
// show about
aboutInfo.setVisibility(View.VISIBLE);
return true;
}
return false;
}
看起来像: