package com.homepagedemo;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.widget.RadioGroup;
import butterknife.Bind;
import butterknife.ButterKnife;
public class RadioGroupActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener {
private Fragment1 fragment1;
private Fragment2 fragment2;
private Fragment3 fragment3;
private Fragment4 fragment4;
@Bind(R.id.rg)
RadioGroup radioGroup;
private FragmentManager fragmentManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_radio_group);
ButterKnife.bind(this);
fragmentManager = getSupportFragmentManager();
//默认选中第一个tab
showFragment(1);
radioGroup.check(R.id.rb_1);
radioGroup.setOnCheckedChangeListener(this);
}
private void showFragment(int page) {
FragmentTransaction ft = fragmentManager.beginTransaction();
// 想要显示一个fragment,先隐藏所有fragment,防止重叠
hideFragments(ft);
switch (page) {
case 1:
// 如果fragment1已经存在则将其显示出来
if (fragment1 != null)
ft.show(fragment1);
// 否则添加fragment1,注意添加后是会显示出来的,replace方法也是先remove后add
else {
fragment1 = new Fragment1();
ft.add(R.id.fl_content_main, fragment1);
}
break;
case 2:
if (fragment2 != null)
ft.show(fragment2);
else {
fragment2 = new Fragment2();
ft.add(R.id.fl_content_main, fragment2);
}
break;
case 3:
if (fragment3 != null) {
ft.show(fragment3);
}
else {
fragment3 = new Fragment3();
ft.add(R.id.fl_content_main, fragment3);
}
break;
case 4:
if (fragment4 != null){
ft.show(fragment4);
}
else {
fragment4 = new Fragment4();
ft.add(R.id.fl_content_main, fragment4);
}
break;
}
ft.commit();
}
// 当fragment已被实例化,相当于发生过切换,就隐藏起来
public void hideFragments(FragmentTransaction ft) {
if (fragment1 != null)
ft.hide(fragment1);
if (fragment2 != null)
ft.hide(fragment2);
if (fragment3 != null)
ft.hide(fragment3);
if (fragment4 != null)
ft.hide(fragment4);
}
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
case R.id.rb_1:
showFragment(1);
break;
case R.id.rb_2:
showFragment(2);
break;
case R.id.rb_3:
showFragment(3);
break;
case R.id.rb_4:
showFragment(4);
break;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Android 首页Fragment切换常用姿势
共53个文件
xml:18个
png:13个
java:10个
需积分: 35 8 下载量 159 浏览量
2017-08-28
20:43:02
上传
评论
收藏 225KB ZIP 举报
温馨提示
提供首页Fragment切换的2种常用姿势 Fragment的显示隐藏和通过Viewpager来切换Fragment
资源推荐
资源详情
资源评论
收起资源包目录
HomePageDemo.zip (53个子文件)
HomePageDemo
HomePageDemo.iml 866B
gradlew 5KB
settings.gradle 16B
2dd.gif 204KB
local.properties 494B
gradlew.bat 2KB
gradle.properties 747B
app
src
androidTest
java
com
homepagedemo
ExampleInstrumentedTest.java 762B
test
java
com
homepagedemo
ExampleUnitTest.java 410B
main
AndroidManifest.xml 939B
res
mipmap-hdpi
ic_launcher.png 3KB
mipmap-xxxhdpi
ic_launcher.png 10KB
mipmap-xhdpi
ic_launcher.png 5KB
mipmap-mdpi
ic_launcher.png 2KB
drawable
message_btn_bg.xml 423B
homepage_btn_bg.xml 425B
textcolor_bottom_main.xml 259B
wo_btn_bg.xml 413B
faxian_btn_bg.xml 421B
layout
frag_4.xml 543B
frag_2.xml 555B
frag_1.xml 554B
activity_view_pager.xml 3KB
frag_3.xml 543B
activity_main.xml 941B
activity_radio_group.xml 3KB
drawable-xhdpi
chomepage.png 2KB
cwo.png 1KB
cfaxian.png 2KB
cmessage.png 2KB
faxian.png 2KB
message.png 1KB
wo.png 2KB
homepage.png 2KB
values-w820dp
dimens.xml 364B
values
colors.xml 214B
strings.xml 80B
styles.xml 394B
dimens.xml 216B
mipmap-xxhdpi
ic_launcher.png 8KB
java
com
homepagedemo
Fragment3.java 601B
Fragment4.java 601B
Fragment1.java 603B
RadioGroupActivity.java 4KB
ViewPagerAdapter.java 732B
MainActivity.java 875B
ViewPagerActivity.java 3KB
Fragment2.java 601B
libs
app.iml 12KB
.gitignore 8B
build.gradle 942B
proguard-rules.pro 661B
build.gradle 521B
共 53 条
- 1
资源评论
FC小司
- 粉丝: 27
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功