服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - android实现点击按钮切换不同的fragment布局

android实现点击按钮切换不同的fragment布局

2022-09-01 13:40筱个椰子皮 Android

这篇文章主要为大家详细介绍了android实现点击按钮切换不同的fragment布局,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了android点击按钮切换不同布局的具体代码,供大家参考,具体内容如下

先上效果图:

android实现点击按钮切换不同的fragment布局

如图所示,实现点击下面的按钮切换不同的fragment布局;

不说了,先上主MainActivity代码:

MainActivity.java:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
package com.example.xh.twostylefragment;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
 
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
 //定义5个fragment
 private MyFragment f1;
 private MyFragment2 f2;
 private MyFragment3 f3;
 private MyFragment4 f4;
 private MyFragment5 f5;
 //定义底部5个按钮
 private Button foot1;
 private Button foot2;
 private Button foot3;
 private Button foot4;
 private Button foot5;
 int i = 0;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
 
  foot1 = (Button) findViewById(R.id.btn1);//注册按钮
  foot2 = (Button) findViewById(R.id.btn2);
  foot3 = (Button) findViewById(R.id.btn3);
  foot4 = (Button) findViewById(R.id.btn4);
  foot5 = (Button) findViewById(R.id.btn5);
  foot1.setOnClickListener(this);//对按钮设置监听
  foot2.setOnClickListener(this);
  foot3.setOnClickListener(this);
  foot4.setOnClickListener(this);
  foot5.setOnClickListener(this);
  //第一次初始化首页默认显示第一个fragment
  initFragment1();
 }
 
 //显示第一个fragment
 private void initFragment1(){
  //开启事务,fragment的控制是由事务来实现的
  FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
 
  //第一种方式(add),初始化fragment并添加到事务中,如果为null就new一个
  if(f1 == null){
   f1 = new MyFragment();
   transaction.add(R.id.main_frame_layout, f1);
  }
  //隐藏所有fragment
  hideFragment(transaction);
  //显示需要显示的fragment
  transaction.show(f1);
 
  //第二种方式(replace),初始化fragment
//  if(f1 == null){
//   f1 = new MyFragment("首页");
//  }
//  transaction.replace(R.id.main_frame_layout, f1);
 
  //提交事务
  transaction.commit();
 }
 
 //显示第二个fragment
 private void initFragment2(){
  FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
 
  if(f2 == null){
   f2 = new MyFragment2();
   transaction.add(R.id.main_frame_layout,f2);
  }
  hideFragment(transaction);
  transaction.show(f2);
 
//  if(f2 == null) {
//   f2 = new MyFragment("分类");
//  }
//  transaction.replace(R.id.main_frame_layout, f2);
 
  transaction.commit();
 }
 
 //显示第三个fragment
 private void initFragment3(){
  FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
 
  if(f3 == null){
   f3 = new MyFragment3();
   transaction.add(R.id.main_frame_layout,f3);
  }
  hideFragment(transaction);
  transaction.show(f3);
 
//  if(f3 == null) {
//   f3 = new MyFragment("发现");
//  }
//  transaction.replace(R.id.main_frame_layout, f3);
 
  transaction.commit();
 }
 private void initFragment4(){
  FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
 
  if(f4 == null){
   f4 = new MyFragment4();
   transaction.add(R.id.main_frame_layout,f4);
  }
  hideFragment(transaction);
  transaction.show(f4);
 
//  if(f4 == null) {
//   f4 = new MyFragment("购物车");
//  }
//  transaction.replace(R.id.main_frame_layout, f4);
 
  transaction.commit();
 }
 private void initFragment5(){
  FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
 
  if(f5 == null){
   f5 = new MyFragment5();
   transaction.add(R.id.main_frame_layout,f5);
  }
  hideFragment(transaction);
  transaction.show(f5);
 
//  if(f5 == null) {
//   f5 = new MyFragment("我的);
//  }
//  transaction.replace(R.id.main_frame_layout, f5);
 
  transaction.commit();
 }
 
 //隐藏所有的fragment
 private void hideFragment(FragmentTransaction transaction){
  if(f1 != null){
   transaction.hide(f1);
  }
  if(f2 != null){
   transaction.hide(f2);
  }
  if(f3 != null){
   transaction.hide(f3);
  }
  if(f4 != null){
   transaction.hide(f4);
  }
  if(f5 != null){
   transaction.hide(f5);
  }
 }
 
 @Override
 public void onClick(View v) {//点击哪个按钮就显示哪个fragment;
  if(v == foot1){
   initFragment1();
  }else if(v == foot2){
   initFragment2();
  }else if(v == foot3){
   initFragment3();
  }else if(v == foot4){
   initFragment4();
  }else if(v == foot5){
   initFragment5();
  }
 }
}

大家需要创建5个fragment,还有对应的xml文件,这里我给大家展示我创建的MyFragment4.java:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.example.xh.twostylefragment;
 
  import android.os.Bundle;
  import android.support.v4.app.Fragment;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.ViewGroup;
 
/**
 * Created by Administrator on 2016/7/8.
 */
public class MyFragment4 extends Fragment {
 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  View view = LayoutInflater.from(getActivity()).inflate(R.layout.shoppingcar,container,false);//用view保存shoppingcar.xml布局,大家可以
  return view;                     //自己创建一个xml.
 }
 
}

差不多就是这样的了,有问题大家可以提出来。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_35595164/article/details/52193086

延伸 · 阅读

精彩推荐