Android中的Fragment页面切换和selector选择器

效果如图:

提示:下面是用的整个的图片

下面看代码:

//--------------------这是主页面布局文件-----------------------

<?xml version="1.0" encoding="utf-8"?><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:orientation="vertical"    tools:context="shaoshan.bwie.com.shaoshan.activity.HomeActivity">

<FrameLayout        android:id="@+id/home_frameLayout"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1"></FrameLayout>

<RadioGroup        android:id="@+id/home_rg"        android:layout_width="match_parent"        android:layout_height="50dp"        android:layout_marginBottom="2dp"        android:background="#FFFFFF"        android:orientation="horizontal">

<RadioButton            android:id="@+id/home_rb_personalcenter"            android:layout_width="0dp"            android:layout_height="match_parent"            android:layout_weight="1"            android:background="@drawable/radio_person"            android:button="@null" />

<RadioButton            android:id="@+id/home_rb_search"            android:layout_width="0dp"            android:layout_height="match_parent"            android:layout_weight="1"            android:background="@drawable/radio_seach"            android:button="@null" />

<RadioButton            android:id="@+id/home_rb_home"            android:layout_width="0dp"            android:layout_height="match_parent"            android:layout_weight="1"            android:background="@drawable/radio_home"            android:button="@null" />

<RadioButton            android:id="@+id/home_rb_map"            android:layout_width="0dp"            android:layout_height="match_parent"            android:layout_weight="1"            android:background="@drawable/radio_map"            android:button="@null" />

<RadioButton            android:id="@+id/home_rb_more"            android:layout_width="0dp"            android:layout_height="match_parent"            android:layout_weight="1"            android:background="@drawable/radio_more"            android:button="@null" />    </RadioGroup></LinearLayout>

//--------------------这是我的主页面--------------------------

package shaoshan.bwie.com.shaoshan.activity;

import android.app.FragmentManager;import android.app.FragmentTransaction;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.RadioButton;import android.widget.RadioGroup;

import shaoshan.bwie.com.shaoshan.R;import shaoshan.bwie.com.shaoshan.activity.fragment.HomePageFragment;import shaoshan.bwie.com.shaoshan.activity.fragment.MapFragment;import shaoshan.bwie.com.shaoshan.activity.fragment.MoreFragment;import shaoshan.bwie.com.shaoshan.activity.fragment.PersonalCenterFragment;import shaoshan.bwie.com.shaoshan.activity.fragment.SeekFragment;

public class HomeActivity extends AppCompatActivity {

private RadioButton home_rb_personalcenter;    private RadioButton home_rb_search;    private RadioButton home_rb_home;    private RadioButton home_rb_map;    private RadioButton home_rb_more;    private RadioGroup home_rg;

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_home);        //自动找控件 快捷键  Alt+insert  或 工具中Code——LayoutCreator        initView();

}

private void initView() {        home_rb_personalcenter = (RadioButton) findViewById(R.id.home_rb_personalcenter);        home_rb_search = (RadioButton) findViewById(R.id.home_rb_search);        home_rb_home = (RadioButton) findViewById(R.id.home_rb_home);        home_rb_map = (RadioButton) findViewById(R.id.home_rb_map);        home_rb_more = (RadioButton) findViewById(R.id.home_rb_more);        home_rg = (RadioGroup) findViewById(R.id.home_rg);        //创建Fragment        FragmentManager homePagemanager = getFragmentManager();        FragmentTransaction homePagetransaction = homePagemanager.beginTransaction();        HomePageFragment homePageFragment = new HomePageFragment();        homePagetransaction.replace(R.id.home_frameLayout, homePageFragment, "homePageFragment");        homePagetransaction.commit();        //设置默认选中        home_rb_home.setChecked(true);

//设置RadioGroup的选中监听        home_rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(RadioGroup group, int checkedId) {                switch (group.getCheckedRadioButtonId()) {                    case R.id.home_rb_personalcenter:                        FragmentManager manager = getFragmentManager();                        FragmentTransaction transaction = manager.beginTransaction();                        PersonalCenterFragment personalCenterFragment = new PersonalCenterFragment();                        transaction.replace(R.id.home_frameLayout, personalCenterFragment, "personalCenterFragment");                        transaction.commit();                        break;                    case R.id.home_rb_search:                        FragmentManager seekmanager = getFragmentManager();                        FragmentTransaction seektransaction = seekmanager.beginTransaction();                        SeekFragment seekFragment = new SeekFragment();                        seektransaction.replace(R.id.home_frameLayout, seekFragment, "seekFragment");                        seektransaction.commit();                        break;                    case R.id.home_rb_home:                        FragmentManager homePagemanager = getFragmentManager();                        FragmentTransaction homePagetransaction = homePagemanager.beginTransaction();                        HomePageFragment homePageFragment = new HomePageFragment();                        homePagetransaction.replace(R.id.home_frameLayout, homePageFragment, "homePageFragment");                        homePagetransaction.commit();                        break;                    case R.id.home_rb_map:                        FragmentManager mapmanager = getFragmentManager();                        FragmentTransaction maptransaction = mapmanager.beginTransaction();                        MapFragment mapFragment = new MapFragment();                        maptransaction.replace(R.id.home_frameLayout, mapFragment, "mapFragment");                        maptransaction.commit();                        break;                    case R.id.home_rb_more:                        FragmentManager moremanager = getFragmentManager();                        FragmentTransaction moretransaction = moremanager.beginTransaction();                        MoreFragment moreFragment = new MoreFragment();                        moretransaction.replace(R.id.home_frameLayout, moreFragment, "moreFragment");                        moretransaction.commit();                        break;                }            }        });

}

}

//------------下面这是我的背景选择器------------这只是其中一个,其他四个也类同,在drawable下创建XML文件--------------------

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@drawable/bt_home" android:state_checked="false"></item>    <item android:drawable="@drawable/bt_home2" android:state_checked="true"></item></selector>

//-------------如下------------------------

注释:其中的几个Fragment我就不写了,很简单,创建一个类继承Fragment,实现onCreateView的方法

如下:这是其中一个

public class MapFragment extends Fragment{    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {        View view=inflater.inflate(R.layout.map_fragment_item,null);        return view;    }}
时间: 2024-10-12 12:41:52

Android中的Fragment页面切换和selector选择器的相关文章

Android 利用ViewPager实现底部圆点导航左右滑动效果以及Fragment页面切换

上一篇博文我们介绍了利用ViewPager和Fragment实现顶部滑块左右滑动效果,具体参考(http://blog.csdn.net/a123demi/article/details/39480385). 而本篇博文将实例讲解利用ViewPager实现底部圆点导航左右滑动效果,以及被滑动界面实现监听事件,同时通过Fragment实现页面的切换. 对于该效果的实现,需要实现以下几个问题: 1. 底部圆点加载和实现方法? 2. 怎样实现左右滑动效果? 3. 被滑动页面,怎样实现监听事件? 4.

深度分析:Android中Mms设置页面更改短信中心号码流程

相关控件初始化方法:showSmscPref private void showSmscPref() { int count = MSimTelephonyManager.getDefault().getPhoneCount(); boolean airplaneModeOn = Settings.System.getInt(getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) != 0; for (int i = 0; i < c

Android中ViewPager+Fragment懒加载问题解决方案

转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53205878 本文出自[DylanAndroid的博客] Android中ViewPager+Fragment懒加载问题解决方案 在Android中我们经常会用到ViewPager+Fragment组合.然而,有一个很让人头疼的问题就是,我们去加载数据的时候 由于ViewPager的内部机制所限制,所以它会默认至少预加载一个.这让人很郁闷,所以,我就想到要封装一个Fragme

ViewPager之Fragment页面切换

一.概述 ViewPager是android-support-v4中提供的类,它是一个容器类,常用于页面之间的切换. 继上篇文章<ViewPager之引导页>之后,本文主要介绍ViewPager更为通用的实践:ViewPager搭配Fragment实现页面切换. 这种实现方式相对于上篇文章而言,可以更好的支持不同页面各自的复杂逻辑,与此同时,也能够保障页面之间的耦合度尽可能的低. 按照惯例,先晒出效果图:        二.实现思路 首先分析一下不同区域的交互需求: 中间灰色区域除了要支持三套

Android中ViewPager+Fragment的基本使用

这几天学习了一下ViewPager+Fragement的基本使用方法并写了个Demo.现将代码和效果图放上. 首先是布局文件  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_paren

android网络请求与页面切换

在android开发中会遇到使用fragment切换页面,并且切换的页面都会有网络请求,网络请求成功后会更新相应的fragment页面.如果使用异步网络请求组件android-async-http,会出现这样的情况,当你快速的切换fragment时,每个fragment都会发出新的请求.例如:fragmentA发了网络请求,又切换到了fragmentB,fragmentB又发了网络请求,然后快速的切换两个fragment,切换多次后可能会出现,fragmentA发出的请求返回成功并且使用hand

Android笔记(十九) Android中的Fragment

通常我们使用Activity来展示界面,但是在手机上界面可能显示的很好看,但在平板上,因为平板的屏幕非常大,手机的界面放在平板上可能会出现控件被拉长.控件之间间距变大等问题.为了更好的体验效果,在Activity中嵌入“子Activity”,然后每个“子Activity”又可以拥有自己的布局,于是Fragment登场了. 什么是Fragment? Fragment是Activity界面中的一部分或一种行为,你可以把多个Fragment组合到一个Acvitity中来创建一个多面界面,并且你也可以在

第54课 Qt 中的多页面切换组件

1. 多页面切换组件(QTabWidget) (1)能够在同一个窗口中自由切换不同页面的内容 (2)是一个容器类型的组件,同时提供友好的页面切换方式 2. QTabWidget的使用方式 (1)在应用程序中创建QTabWidget的对象 (2)将其他QWidget对象加入该对象中.但QTabWidget对象每次只能加入一个QWidget对象,同时将成生成一个新的页面. (3)将多个组件加入到同一个QTabWidget页面的解决方案 ①创建容器类型的组件对象 ②将多个子组件在容器对象中布局 ③将容

android中viewPager+fragment实现的屏幕左右切换(进阶篇)

Fragment支持在不同的Activity中使用并且可以处理自己的输入事件以及生命周期方法等.可以看做是一个子Activity. 先看一下布局: 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match