类似于微信的在一个Activity中界面的相互切换

原创 2015年09月25日 22:47:54

今天我们讲一个例子,主要的实现是通过点击界面下方的不同按钮,然后在上面显示不同的Fragment布局

步骤:

1、在res文件夹下新建一个drawable文件,然后在里面创建4个新的Selector类型的xml文件,

文件内容是:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/firstpage" android:state_checked="true"></item>
	<item android:drawable="@drawable/firstpage_blue" android:state_enabled="false"></item>
	
	<item android:drawable="@drawable/firstpage_blue"></item>
</selector>
这里我只列举了一个,其它三个和它是一样的。

2、然后就是activity_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" >
    <FrameLayout 
        android:id="@+id/frame"
        android:layout_height="0dp"
        android:layout_width="match_parent"
        android:layout_weight="9"
        >
    </FrameLayout>
	<RadioGroup 
	    android:id="@+id/group"
	    android:layout_height="0dp"
	    android:layout_width="match_parent"
	    android:layout_weight="1"
	    android:orientation="horizontal">
	    <RadioButton 
	        android:id="@+id/rbOne"
	        android:layout_width="0dp"
	        android:layout_weight="1"
	        android:layout_height="match_parent"
	        android:button="@null"
	        android:checked="true"
	        android:background="@drawable/rb_one_selector"/>
	     <RadioButton 
	        android:id="@+id/rbTwo"
	        android:layout_width="0dp"
	        android:layout_weight="1"
	        android:layout_height="match_parent"
	        android:button="@null"
	        android:background="@drawable/rb_two_selector"/>
	      <RadioButton 
	        android:id="@+id/rbThree"
	        android:layout_width="0dp"
	        android:layout_weight="1"
	        android:layout_height="match_parent"
	        android:button="@null"
	        android:background="@drawable/rb_three_selector"/>
	       <RadioButton 
	        android:id="@+id/rbFour"
	        android:layout_width="0dp"
	        android:layout_weight="1"
	        android:layout_height="match_parent"
	        android:button="@null"
	        android:background="@drawable/rb_four_selector"/>
	</RadioGroup>
</LinearLayout>
3、定义四个Fragment和四个xml文件,这里我们只列出一条吧,其它三条和它是一样的:

OneFrag:

package org.mobiletrain.fragment_demo13;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class OneFrag extends Fragment{

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		return inflater.inflate(R.layout.one, null);
	}
}
第一个Fragment的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" >
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="这时第一个界面"
        android:textSize="30sp" />
</LinearLayout>
4、接下来就是在MainActivity中实现相应的逻辑操作:

package org.mobiletrain.fragment_demo13;

import android.os.Bundle;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.view.Menu;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;

public class MainActivity extends Activity {

	FragmentManager manager;
	RadioGroup group;
	OneFrag onefrag;
	TwoFrag twoFrag;
	ThreeFrag threeFrag;
	FourFrag fourFrag;
	FragmentTransaction transaction;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_home);
		group = (RadioGroup)findViewById(R.id.group);
		manager = getFragmentManager();
		onefrag = new OneFrag();
		//设置初始的Fragment
		manager.beginTransaction().replace(R.id.frame, onefrag).commit();
		//设置RadioGroup的监听事件
		group.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			
			@Override
			public void onCheckedChanged(RadioGroup group, int checkedId) {
				// TODO Auto-generated method stub
				transaction = manager.beginTransaction();
				switch (checkedId) {
				case R.id.rbOne:
					//实例化一个Fragment对象然后替换掉上面的Fragment
					onefrag = new OneFrag();
					transaction.replace(R.id.frame, onefrag);
					break;
				case R.id.rbTwo:
					twoFrag = new TwoFrag();
					transaction.replace(R.id.frame, twoFrag);
					break;
				case R.id.rbThree:
					threeFrag = new ThreeFrag();
					transaction.replace(R.id.frame, threeFrag);
					break;
				case R.id.rbFour:
					fourFrag = new FourFrag();
					transaction.replace(R.id.frame, fourFrag);
					break;
				default:
					break;
				}
				//提交
				transaction.commit();
			}
		});
		
		
	}

	

}
运行效果图:








版权声明:本文为博主原创文章,未经博主允许不得转载。

android 打开微信主界面

怎么在自己的app中打开微信
  • HUSHILIN001
  • HUSHILIN001
  • 2016年07月21日 00:22
  • 3155

使用ViewPager+Fragment+RadioGroup实现类似微信主界面

其实现在很多的应用都有类似的实现,最常用的或许就是微信了吧。先来看看效果图吧 当然这里只是拿了大众点评的图片,和微信的实现功能是一样的。微博也有类似的实现,但微博的实现简单点,用Fragment+Ra...
  • u013132744
  • u013132744
  • 2015年12月14日 16:09
  • 1552

Android 仿微信Activity左右切换 【全局配置Activity显示动画】

http://blog.csdn.net/lnb333666/article/details/8962715#
  • white__cat
  • white__cat
  • 2015年11月19日 23:03
  • 810

android 两种方式模仿微信界面滑动切换Activity

android 两种方式模仿微信界面滑动切换Activity,分别为ActivityGroup和ViewPager组合、Fragment和ViewPager组合。实现下拉刷新数据。...
  • u014071669
  • u014071669
  • 2014年09月11日 17:42
  • 1912

Android 之打造仿微信页面切换公共方法及实现

1.切换调用: private void setSelect(int i){ setTab(i); }private void setTab(i){ //全部设置为默认图片 ...
  • jky_yihuangxing
  • jky_yihuangxing
  • 2016年04月01日 14:00
  • 841

Android Studio使用ViewPager+Fragment实现仿微信滑动切换界面

  • 2016年12月27日 16:45
  • 33.05MB
  • 下载

android 实现类似微信滑动切换界面

先声明参考来源:  http://blog.csdn.net/lijunhuayc/article/details/40543237 本文在参考基础上进行了部分改进,原文更倾向于效果展示,而本文在效果...
  • huashanjuji
  • huashanjuji
  • 2015年07月18日 13:19
  • 955

Android 高仿微信6.0主界面 带你玩转切换图标变色

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/41087219,本文出自:【张鸿洋的博客】1、概述学习Android少不了模仿各种...
  • lmj623565791
  • lmj623565791
  • 2014年11月17日 09:40
  • 81867

类似于微信的在一个Activity中界面的相互切换

今天我们讲一个例子,主要的实现是通过点击界面下方的不同按钮,然后在上面显示不同的Fragment布局 步骤: 1、在res文件夹下新建一个drawable文件,然后在里面创建4个新的Selector类...
  • kuangxiaoguo0123
  • kuangxiaoguo0123
  • 2015年09月25日 22:47
  • 1971

Android学习之微信界面的模仿实现

参考自:http://www.cnblogs.com/lichenwei/ 模仿微信界面的实现我是使用Fragment固定界面的方式来实现的,主要用到的布局方式有LinearLayout和Fram...
  • qq_28468727
  • qq_28468727
  • 2016年09月21日 21:47
  • 1857
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:类似于微信的在一个Activity中界面的相互切换
举报原因:
原因补充:

(最多只允许输入30个字)