我是Android开发的新手。我一直试图将按钮链接到页面,当单击按钮时,它会在同一布局的右侧打开一个页面,对于布局上的不同按钮也是如此。下图中附有插图,当按下按钮1时,它打开第1页,我希望它在单击按钮2时打开更换页面1,而按钮3,4和5则相同。任何人都可以告诉我我需要什么做或包括?谢谢。
答案 0 :(得分:2)
创建活动,例如MainActivity.java
创建五个片段:
例如:FragmentPageOne.java
,FragmentPageTwo.java
,FragmentPageThree.java
,FragmentPageFour.java
,FragmentPagefive.java
在您的activity_main.xml中:
在一个父LinearLayouts
内创建两个LinearLayout
,并包含一个线性布局,其中五个buttons
和一个FrameLayout
将成为MainActivity.java
上的容器。
在您的MainActivity.xml中
在每个onClickListner
上设置buttons
,当您在第一个按钮上显示时,它会在FrameLayout
容器上显示您的第一个片段,就像按钮上的那个标签一样,它会在您的右侧显示您的片段布局线性布局。
另请参阅此
http://www.truiton.com/2017/01/android-bottom-navigation-bar-example/
https://www.androidhive.info/2017/12/android-working-with-bottom-navigation/
您的activity.xml如下所示:
<LinearLayout
orientation = horizontal />
<LinearLayout>
//Five Buttons here
</LinearLayout>
<LinearLayout>
<FrameLayout
app:elevation="5dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/content_frame_home">
</FrameLayout>
</LinearLayout>
</LinearLayout>
以下示例代码:
@Override
public void onClick(View v) {
if(v.getId()== R.id.home_ll){
homeImg.setImageResource(R.mipmap.ic_home_active);
searchImg.setImageResource(R.mipmap.ic_search);
HomeFragment homeFragment = new HomeFragment().newInstance();
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame_home, homeFragment)
.commit();
}
if(v.getId()== R.id.search_ll){
homeImg.setImageResource(R.mipmap.ic_home);
searchImg.setImageResource(R.mipmap.ic_search_active);
SearchFragment searchFragment = new SearchFragment().newInstance();
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame_home, searchFragment)
.commit();
}
if(v.getId()== R.id.categories_ll){
homeImg.setImageResource(R.mipmap.ic_home);
searchImg.setImageResource(R.mipmap.ic_search);
CategoriesFragment categoriesFragment = new CategoriesFragment().newInstance();
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame_home, categoriesFragment)
.commit();
}
if(v.getId()== R.id.cart_ll){
homeImg.setImageResource(R.mipmap.ic_home);
searchImg.setImageResource(R.mipmap.ic_search);
CartFragment cartFragment = new CartFragment().newInstance();
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame_home, cartFragment)
.commit();
}
if(v.getId()== R.id.account_ll){
homeImg.setImageResource(R.mipmap.ic_home);
searchImg.setImageResource(R.mipmap.ic_search);
AccountFragment accountFragment = new AccountFragment().newInstance();
getSupportFragmentManager().beginTransaction()
.replace(R.id.content_frame_home, accountFragment)
.commit();
}
}
答案 1 :(得分:0)
是的,你可以这样做。点击button
使用即可使用fragments
。对于每个按钮调用fragments
并使用添加和替换处理fragments
。
答案 2 :(得分:0)
为每个页面定义fragments
。在您要显示页面的位置进行虚拟布局。点击button
点击相应的页面fragment
。
答案 3 :(得分:0)
您可以使用fragment
代替布局page1,然后在点击fragment
或2时替换布局button1
,...
指南链接:
https://developer.android.com/guide/components/fragments.html
答案 4 :(得分:0)
就像导航抽屉一样。您可以使用片段,然后根据按钮单击,更改片段! 让我知道它是否有效! :)