Fragement替换Tabhost,实现侧滑功能

来源:互联网 发布:软件体系结构的定义 编辑:程序博客网 时间:2024/06/05 00:36

实现功能,首先用Fragmnt替换Tabhost,然后可以实现侧滑功

同样第一步要要实现几个功能就写几个Fragement继承Fragemnt,XML也是一样(内容几个随便添加例:Textview)、

第二步写Fragment继承Fragmnet

下面具体代码实现:

先写出三个Fragmnet

第一个

package com.example.jjj;import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;public class FragmentMain extends Fragment {@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {return inflater.inflate(R.layout.fragmentmain, container, false);}}

<?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" >        <TextView android:layout_width="match_parent"    android:layout_height="match_parent"    android:text="这是首页"/></LinearLayout>
第二个

package com.example.jjj;import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;public class FragmentSearch extends Fragment{@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { return inflater.inflate(R.layout.fragmentsearch, container, false);}}

<?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="wrap_content"    android:orientation="vertical"     android:background="@android:color/holo_blue_bright">         <TextView     android:layout_width="match_parent"    android:layout_height="match_parent"    android:text="这是搜索"    /></LinearLayout>

第三个

package com.example.jjj;import android.os.Bundle;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;public class FragmentSetting extends Fragment{@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {    View view=inflater.inflate(R.layout.fragmentsetting, container, false); return view;}}

<?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" >         <TextView android:layout_width="match_parent"    android:layout_height="match_parent"    android:text="这是设置"/></LinearLayout>

三个都写完了开始写最后一个也是最关键的一个:

package com.example.jjj;import java.util.ArrayList;import java.util.List;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.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.util.Log;import android.widget.ListView;import android.widget.RadioButton;import android.widget.RadioGroup;import android.widget.RadioGroup.OnCheckedChangeListener;public class FragMentActivty extends FragmentActivity {private RadioGroup mRadioGroup;FragmentMain mFragmentMain;FragmentSearch mFragmentSearch;FragmentSetting mFragmentSetting;ViewPager mViewPager;private List<Fragment> mList;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.fragment);mRadioGroup = (RadioGroup) findViewById(R.id.bottomrg);mViewPager = (ViewPager) findViewById(R.id.fragmentfram);mFragmentMain = new FragmentMain();mFragmentSearch = new FragmentSearch();mFragmentSetting = new FragmentSetting();mList = new ArrayList<Fragment>();mList.add(mFragmentMain);mList.add(mFragmentSearch);mList.add(mFragmentSetting);//监听侧滑mViewPager.setOnPageChangeListener(new OnPageChangeListener() {@Overridepublic void onPageSelected(int arg0) {Log.e("onPageSelected>>>>>", "onPageSelected"); ((RadioButton) mRadioGroup.getChildAt(arg0)).toggle();}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {Log.e("onPageScrolled>>>>>", "onPageScrolled");}@Overridepublic void onPageScrollStateChanged(int arg0) {Log.e("onPageScrollStateChanged>>>>>", "onPageScrollStateChanged");}});//监听点击事件mRadioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {//android.support.v4.app.FragmentTransaction transaction = getSupportFragmentManager()//.beginTransaction();switch (checkedId) {case R.id.raidoTab1:mViewPager.setCurrentItem(0);break;case R.id.raidoTab2:mViewPager.setCurrentItem(1);break;case R.id.raidoTab3:mViewPager.setCurrentItem(2);break;}}});//打开后默认为第一个 ((RadioButton) mRadioGroup.getChildAt(0)).toggle();}}}

还是补上对应的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" >    <android.support.v4.view.ViewPager        android:id="@+id/fragmentfram"        android:layout_width="wrap_content"        android:layout_height="0dp"        android:layout_weight="1" />    <RadioGroup        android:id="@+id/bottomrg"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:orientation="horizontal" >        <RadioButton            android:id="@+id/raidoTab1"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:background="@drawable/ye"            android:button="@null"            android:drawableTop="@drawable/home_on"            android:text="首页" />        <RadioButton            android:id="@+id/raidoTab2"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:background="@drawable/ye"            android:button="@null"            android:text="美食" />        <RadioButton            android:id="@+id/raidoTab3"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:background="@drawable/home_off"            android:button="@null"            android:drawableTop="@drawable/home_on"            android:text="娱乐"           />    </RadioGroup></LinearLayout>

这样就可以实现一个简单的侧滑功能,这里可能也有一个图标和点击按钮不对称,需要自己另外去调




0 0