Fragment碎片实现底部菜单栏,仿支付宝UI,UI学习之路二
来源:互联网 发布:教学白板软件 编辑:程序博客网 时间:2024/05/17 21:48
效果如下
1.首先是MainActivity类
package com.example.dbcd;import android.graphics.Color;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentTransaction;import android.view.Menu;import android.view.Window;import android.widget.RadioButton;import android.widget.RadioGroup;import android.widget.RadioGroup.OnCheckedChangeListener;public class MainActivity extends FragmentActivity {private Fragment[] mFragments;private RadioGroup bottomRg;private FragmentManager fragmentManager;private FragmentTransaction fragmentTransaction;private RadioButton rbOne,rbTwo,rbThree,rbFour;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);this.requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);mFragments = new Fragment[4];fragmentManager = getSupportFragmentManager();mFragments[0] = fragmentManager.findFragmentById(R.id.fragment_main);mFragments[1] = fragmentManager.findFragmentById(R.id.fragment_search);mFragments[2] = fragmentManager.findFragmentById(R.id.fragment_setting);mFragments[3] = fragmentManager.findFragmentById(R.id.fragment_more);fragmentTransaction = fragmentManager.beginTransaction().hide(mFragments[0]).hide(mFragments[1]).hide(mFragments[2]).hide(mFragments[3]);fragmentTransaction.show(mFragments[0]).commit();setFragmentIndicator();}private void setFragmentIndicator(){bottomRg = (RadioGroup)findViewById(R.id.bottomRg);rbOne = (RadioButton)findViewById(R.id.rbOne);rbTwo = (RadioButton)findViewById(R.id.rbTwo);rbThree =(RadioButton)findViewById(R.id.rbThree);rbFour =(RadioButton)findViewById(R.id.rbFour);bottomRg.check(rbOne.getId());rbOne.setTextColor(Color.WHITE);bottomRg.setOnCheckedChangeListener(new OnCheckedChangeListener(){@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {fragmentTransaction = fragmentManager.beginTransaction().hide(mFragments[0]).hide(mFragments[1]).hide(mFragments[2]).hide(mFragments[3]);rbOne.setTextColor(Color.GRAY);rbTwo.setTextColor(Color.GRAY);rbThree.setTextColor(Color.GRAY);rbFour.setTextColor(Color.GRAY);switch(checkedId){case R.id.rbOne:fragmentTransaction.show(mFragments[0]).commit();rbOne.setTextColor(Color.WHITE);break;case R.id.rbTwo:fragmentTransaction.show(mFragments[1]).commit();rbTwo.setTextColor(Color.WHITE);break;case R.id.rbThree:fragmentTransaction.show(mFragments[2]).commit();rbThree.setTextColor(Color.WHITE);break;case R.id.rbFour:fragmentTransaction.show(mFragments[3]).commit();rbFour.setTextColor(Color.WHITE);break;default:break;}}});}}
对应的activity_main.xml文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/activity_bg" android:orientation="vertical" tools:context=".MainActivity" > <fragment android:id="@+id/fragment_main" android:name="com.example.dbcd.FragmentMain" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="10" /> <fragment android:id="@+id/fragment_search" android:name="com.example.dbcd.FragmentSearch" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="10" /> <fragment android:id="@+id/fragment_setting" android:name="com.example.dbcd.FragmentQian" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="10" /> <fragment android:id="@+id/fragment_more" android:name="com.example.dbcd.FragmentMore" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="10" /> <RadioGroup android:id="@+id/bottomRg" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/tab_footer_bg" android:orientation="horizontal" > <RadioButton android:id="@+id/rbOne" style="@style/rg_btn_style1" android:checked="true" android:layout_marginTop="2dp" android:drawableTop="@drawable/rb_one_btn_selector" android:text="支付宝" android:textColor="#ff888888" /> <RadioButton android:id="@+id/rbTwo" style="@style/rg_btn_style1" android:layout_marginTop="2dp" android:drawableTop="@drawable/rb_two_btn_selector" android:text="探索" android:textColor="#ff888888" /> <RadioButton android:id="@+id/rbThree" style="@style/rg_btn_style1" android:checked="true" android:layout_marginTop="2dp" android:drawableTop="@drawable/rb_three_btn_selector" android:text="财富" android:textColor="#ff888888" /> <RadioButton android:id="@+id/rbFour" style="@style/rg_btn_style1" android:checked="true" android:layout_marginTop="2dp" android:drawableTop="@drawable/rb_four_btn_selector" android:text="更多" android:textColor="#ff888888" /> </RadioGroup></LinearLayout>
2.其中以个Fragment类的实现FragmentMain类
package com.example.dbcd;import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;public class FragmentMain extends Fragment{private TextView tv;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {return inflater.inflate(R.layout.fragment_main,container, false);}@Overridepublic void onActivityCreated(Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);tv = (TextView)getView().findViewById(R.id.titleTv);tv.setText("支付宝");}}
对应的fragment_main.xml文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <include android:id="@+id/one_title" layout="@layout/title_bar"/><TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="这是首页" android:textColor="#000000" /></LinearLayout>
3.还有标头,title_bar.xml
<?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="wrap_content" android:background="@drawable/app_titlebar_bg" > <LinearLayout android:id="@+id/scanLayout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:clickable="true" android:orientation="vertical" android:paddingBottom="6.0dp" android:paddingLeft="12.0dp" android:paddingRight="12.0dp" android:paddingTop="8.0dp" > <ImageView android:id="@+id/scanIcon" android:layout_width="21.0dp" android:layout_height="21.0dp" android:layout_gravity="center_horizontal" android:background="@drawable/sys_btn_sel" /> <ImageView android:layout_width="33.0dp" android:layout_height="13.0dp" android:layout_marginTop="2.5dp" android:background="@drawable/sys_name_btn_sel" /> </LinearLayout> <LinearLayout android:id="@+id/facepayLayout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:clickable="true" android:orientation="vertical" android:paddingBottom="6.0dip" android:paddingLeft="12.0dip" android:paddingRight="12.0dip" android:paddingTop="8.0dip" > <ImageView android:id="@+id/facepayIcon" android:layout_width="21.0dp" android:layout_height="21.0dp" android:layout_gravity="center_horizontal" android:background="@drawable/dmf_btn_sel" /> <ImageView android:layout_width="33.0dp" android:layout_height="13.0dp" android:layout_marginTop="2.5dp" android:background="@drawable/dmf_name_btn_sel" /> </LinearLayout> <TextView android:id="@+id/titleTv" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_toLeftOf="@id/facepayLayout" android:layout_toRightOf="@id/scanLayout" android:ellipsize="end" android:gravity="center" android:paddingBottom="14.5dp" android:paddingTop="14.5dp" android:singleLine="true" android:textColor="#ffffff" android:textSize="20sp" /></RelativeLayout>
最终,源码在这里
0 0
- Fragment碎片实现底部菜单栏,仿支付宝UI,UI学习之路二
- 【Android UI设计与开发】5.底部菜单栏(二)使用Fragment实现底部菜单栏
- 【Android UI】RadioGroup+Fragment实现底部菜单栏
- 【Android UI设计与开发】Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- ViewPager实现顶部菜单栏,仿最新易信UI,UI学习之路四
- UI碎片控件之Fragment——底部导航栏的实现(方法1)
- UI碎片控件之Fragment——底部导航栏的实现(方法2)
- UI碎片控件之Fragment——底部导航栏的实现(方法3)
- 【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- 【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- 【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- 【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- 【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- 【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- (4.1.8.3)【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- 【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- 【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- 【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- Hashtable和HashMap的区别
- 回音消除之二实践篇
- Gas Station -- LeetCode
- 一步步学习微软InfoPath2010和SP2010--第六章节--发布并提交表单数据(6)--关键点
- 大学4年里要读的100本书
- Fragment碎片实现底部菜单栏,仿支付宝UI,UI学习之路二
- MinGW+msys windows 下编译 ffmpeg
- TextView中的文字添加阴影效果及Style的使用
- 一步步学习微软InfoPath2010和SP2010--第七章节--从SP列表和业务数据连接接收数据
- linux命令之source
- 深入理解C语言
- avl 树旋转
- vim clang 补全
- mahout相关学习--2