RadioButton实现Fragment切换
来源:互联网 发布:iphone倒计时软件 编辑:程序博客网 时间:2024/05/18 19:21
需要实现效果大致如下:
RadioButton切换Fragment最大的好处莫过于界面效果变换非常稳定了。
布局:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <!--RadioButton实现点击切换Fragment--> <FrameLayout android:id="@+id/fl_info_framlayout" android:layout_width="200dp" android:layout_height="200dp" android:layout_centerInParent="true" android:background="#4400ffff"/> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="110dp"> <RadioGroup android:id="@+id/rg_user_radiogroup1" android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="vertical" android:paddingLeft="5dp" android:paddingRight="5dp"> <RadioButton android:id="@+id/rb_userinfo1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:button="@null" android:text="我的" android:textSize="14sp"/> <RadioButton android:id="@+id/rb_userinfo2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:background="#00000000" android:button="@null" android:text="路线" android:textSize="14sp"/> <RadioButton android:id="@+id/rb_userinfo3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:background="#00000000" android:button="@null" android:text="心率" android:textSize="14sp"/> <RadioButton android:id="@+id/rb_userinfo4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:background="#00000000" android:button="@null" android:text="积分" android:textSize="14sp"/> </RadioGroup> <RadioGroup android:layout_alignParentRight="true" android:id="@+id/rg_user_radiogroup2" android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="vertical" android:paddingLeft="5dp" android:paddingRight="5dp"> <RadioButton android:id="@+id/rb_userinfo5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:button="@null" android:text="卡路里" android:textSize="14sp"/> <RadioButton android:id="@+id/rb_userinfo6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:background="#00000000" android:button="@null" android:text="周报" android:textSize="14sp"/> <RadioButton android:id="@+id/rb_userinfo7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:background="#00000000" android:button="@null" android:text="月报" android:textSize="14sp"/> <RadioButton android:id="@+id/rb_userinfo8" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:background="#00000000" android:button="@null" android:text="..." android:textSize="14sp"/> </RadioGroup> </RelativeLayout></RelativeLayout>
MainActivity:
package com.ut.radiobuttondynamicadd;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentTransaction;import android.support.v7.app.AppCompatActivity;import android.widget.FrameLayout;import android.widget.RadioButton;import android.widget.RadioGroup;import com.ut.radiobuttondynamicadd.factory.UserFragmentFactory;import butterknife.ButterKnife;import butterknife.InjectView;public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener { @InjectView(R.id.rb_userinfo1) RadioButton mRbUserinfo1; @InjectView(R.id.rg_user_radiogroup1) RadioGroup mRgUserRadiogroup1; @InjectView(R.id.rg_user_radiogroup2) RadioGroup mRgUserRadiogroup2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.inject(this); initView(); } private void initView() { mRgUserRadiogroup1.setOnCheckedChangeListener(this); mRgUserRadiogroup2.setOnCheckedChangeListener(this); mRbUserinfo1.setChecked(true); } @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId) { case R.id.rb_userinfo1: changeFragment(UserFragmentFactory.createFragment(0)); break; case R.id.rb_userinfo2: changeFragment(UserFragmentFactory.createFragment(1)); break; case R.id.rb_userinfo3: changeFragment(UserFragmentFactory.createFragment(2)); break; case R.id.rb_userinfo4: changeFragment(UserFragmentFactory.createFragment(3)); break; case R.id.rb_userinfo5: changeFragment(UserFragmentFactory.createFragment(4)); break; case R.id.rb_userinfo6: changeFragment(UserFragmentFactory.createFragment(5)); break; case R.id.rb_userinfo7: changeFragment(UserFragmentFactory.createFragment(6)); break; case R.id.rb_userinfo8: changeFragment(UserFragmentFactory.createFragment(7)); break; } } private void changeFragment(Fragment targetFragment) { getSupportFragmentManager().beginTransaction() .replace(R.id.fl_info_framlayout, targetFragment, "fragment") .setTransitionStyle(FragmentTransaction.TRANSIT_FRAGMENT_FADE) .commit(); }}
~下载Demo链接~
0 0
- RadioButton实现Fragment切换
- 底部RadioButton实现Fragment切换
- fragment+Radiobutton实现顶部导航切换
- Fragment+RadioButton实现点击切换页面效果
- Fragment+RadioButton实现Tab页切换
- Fragment+RadioButton实现点击切换页面效果
- RadioGroup+RadioButton切换Fragment
- ViewPager、Fragment、RadioButton实现顶部切换Tab页面
- fragment中添加ViewPager实现界面切换,动态添加radiobutton
- Fragment+RadioButton点击切换页面
- BottomTabBar替换RadioButton切换Fragment
- RadioGroup和Fragment相结合实现点击RadioButton进行Fragment的切换
- Fragment切换。radiobutton加fragment切换(附件源码下载)
- android的RadioButton切换不同的fragment
- 动态添加RadioButton并切换Fragment
- 主页面RadioButton切换Fragment模板
- RadioGrop嵌套Radiobutton 切换不同的 fragment
- Android_静态添加Fragment&RadioButton切换
- Java实现的RSA非对称加密工具
- Python 源码剖析(二)—— 第一次修改 Python 源代码
- jQuery中的ajax补充
- java连续取掉多个不需要的字符
- 15个必须知道的chrome开发者技巧
- RadioButton实现Fragment切换
- android那点事
- android EditText完美解决禁止输入法表情
- bzoj 3994: [SDOI2015]约数个数和(反演)
- SQL中IN和EXISTS用法的区别
- PhoneGap的使用
- nyoj_65 另一种阶乘问题
- tomcat org.apache.catalina.tribes.ChannelException: java.net.SocketException: Not a multicast addres
- unix编程(五)信号