`

Android之Fragment界面布局实例

阅读更多

显示效果图:

 

TabActivity.java:

package com.demo.tab;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.SimpleOnPageChangeListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.TextView;

import com.demo.broadcast.R;

public class TabActivity extends FragmentActivity implements OnClickListener{
	
	private TextView tab1, tab2, tab3;
	private ImageView tab1_bottom, tab2_bottom, tab3_bottom;
	private ViewPager viewPager;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		this.setContentView(R.layout.tab);
		initView();
		show(1);
	}

	private void initView() {
		tab1 = (TextView) findViewById(R.id.tab1);
		tab2 = (TextView) findViewById(R.id.tab2);
		tab3 = (TextView) findViewById(R.id.tab3);
		tab1.setOnClickListener(this);
		tab2.setOnClickListener(this);
		tab3.setOnClickListener(this);
		
		tab1_bottom = (ImageView) findViewById(R.id.tab1_bottom);
		tab2_bottom = (ImageView) findViewById(R.id.tab2_bottom);
		tab3_bottom = (ImageView) findViewById(R.id.tab3_bottom);
		
		viewPager = (ViewPager) findViewById(R.id.viewPager);
		TabPagerAdapter adapter = new TabPagerAdapter(getSupportFragmentManager());
		viewPager.setAdapter(adapter);
		viewPager.setOnPageChangeListener(new SimpleOnPageChangeListener(){
			  
	        @Override  
	        public void onPageSelected(int arg0) {
	        	show(arg0);
	        }  
		});  
		viewPager.setCurrentItem(1);
	}
	
	private void show(int position){
		tab1_bottom.setVisibility(position == 0 ? View.VISIBLE : View.INVISIBLE);
		tab2_bottom.setVisibility(position == 1 ? View.VISIBLE : View.INVISIBLE);
		tab3_bottom.setVisibility(position == 2 ? View.VISIBLE : View.INVISIBLE);
	}

	
	@Override
	public void onClick(View v) {
		switch(v.getId()){
		case R.id.tab1:
			viewPager.setCurrentItem(0);  
			break;
		case R.id.tab2:
			viewPager.setCurrentItem(1);  
			break;
		case R.id.tab3:
			viewPager.setCurrentItem(2);  
			break;
		}
	}
}

 

 

 

TabPagerAdapter.java:

package com.demo.tab;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class TabPagerAdapter extends FragmentPagerAdapter{
	private static int TCOUNT = 3;

	private TabFragment[] fragments = new TabFragment[TCOUNT];
	
	public TabPagerAdapter(FragmentManager fm) {
		super(fm);
	}
	
	@Override
	public Fragment getItem(int position) {
		TabFragment fragment = new TabFragment();
		Bundle args = new Bundle();
		args.putInt("section_number", position);
		fragment.setArguments(args);
		fragments[position] = fragment;
		return fragment;
	}

	@Override
	public int getCount() {
		return TCOUNT;
	}
	
}

 

 

 

TabFragment.java:

package com.demo.tab;

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

import com.demo.broadcast.R;

public class TabFragment extends Fragment{
	
	private int section;
	
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		section = getArguments().getInt("section_number");
		if(section == 0){
			View view = inflater.inflate(R.layout.tab1, container, false);
			return view;
		}else if(section == 1){
			View view = inflater.inflate(R.layout.tab2, container, false);
			return view;
		}else if(section == 2){
			View view = inflater.inflate(R.layout.tab3, container, false);
			return view;
		}
		return null;
	}
}

 

 

 

tab.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:background="#ffffff"
    android:orientation="vertical" >
    
    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1" />
    
    <!-- tab标签栏 -->

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="60dp"
        android:background="#000000" >

        <TextView
            android:id="@+id/tab1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="tab1"
            android:textColor="#ffffff"
            android:textSize="18sp" />

        <View
            android:layout_width="1dp"
            android:layout_height="30dp"
            android:layout_gravity="center_vertical"
            android:background="#F3F2F6" />

        <TextView
            android:id="@+id/tab2"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="tab2"
            android:textColor="#ffffff"
            android:textSize="18sp" />
        
        <View
            android:layout_width="1dp"
            android:layout_height="30dp"
            android:layout_gravity="center_vertical"
            android:background="#F3F2F6" />

        <TextView
            android:id="@+id/tab3"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="tab3"
            android:textColor="#ffffff"
            android:textSize="18sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/tab1_bottom"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/tab_red_bottom" />

        <ImageView
            android:id="@+id/tab2_bottom"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/tab_red_bottom" />
        
        <ImageView
            android:id="@+id/tab3_bottom"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/tab_red_bottom" />
    </LinearLayout>

</LinearLayout>

 

tab1.xml,tab2.xml,tab3.xml布局非常简单,在此就不在展示了。

 

  • 大小: 15.2 KB
0
0
分享到:
评论

相关推荐

    Android Studio动态加载Fragment和获取实例的方法

    Android Studio 动态加载 Fragment 和获取实例的方法 Android Studio 是一个功能强大的集成开发环境(IDE),它提供了许多实用的功能和工具来帮助开发者快速构建高质量的 Android 应用程序。在 Android 开发中,...

    Android解决多个Fragment切换时布局重新实例化问题,并保存当前fragment页面,系统回收后还原之前fragment页面,更新版

    然而,当涉及到多个Fragment之间的切换时,可能会遇到一个问题:每次切换时,Fragment的布局可能会被重新实例化,导致用户体验下降,例如丢失用户在Fragment中的状态。为了解决这个问题,我们需要采取一系列策略来...

    Android Fragment实例

    - `AndroidFragment.zip`可能包含一个基础的Android Fragment项目,用于学习Fragment的基础用法和实践。 7. **Fragment在不同版本上的兼容性**: - 从Android 3.0(API级别11)开始引入Fragment,但通过Android ...

    android界面切换 Fragment实例

    在这个"android界面切换 Fragment实例"中,我们将深入探讨如何使用Fragment进行界面切换。 Fragment的创建首先需要继承Fragment类并实现其生命周期方法。例如,我们可以创建一个名为`MyFragment`的类,包含`...

    android 界面布局开发实例

    本实例专注于Android界面布局的开发,对于初学者来说是一个非常实用的起点。通过这个实例,你可以学习到如何创建、设计和管理Android应用的用户界面。 在Android中,布局通常由XML文件定义,这些文件位于项目的res/...

    一个Android -Fragment实例

    在Android应用开发中,Fragment是Android SDK中的一个重要组件,它被设计用来支持多屏幕适配和复杂的用户界面设计。在大型应用中,尤其是在平板电脑和电视等大屏幕设备上,Fragment使得开发者能够将一个Activity拆分...

    Android应用源码之Fragment实现tab实例 代码.rar

    这个“Android应用源码之Fragment实现tab实例 代码”压缩包很可能是为了展示如何使用Fragment来构建一个具有标签切换功能的应用界面。在本文中,我们将深入探讨Fragment以及如何用它们来实现Tab布局。 首先,...

    Android之Fragment多个页面切换实现

    在Android应用开发中,Fragment是UI组件的一种,它允许开发者在一个Activity中添加多个"子界面",从而实现更复杂的布局和交互。Fragment的设计初衷是为了更好地适应不同尺寸的屏幕,如手机和平板,使得UI能够在不同...

    安卓Android源码——Fragment实现tab实例代码.zip

    在Android开发中,Fragment是构建动态、可重用的用户界面的一个重要组件。它允许开发者在单个活动中展示多个UI片段。在这个实例中,我们将会深入理解如何使用Fragment来实现tab切换的效果,这对于创建一个多页面的...

    Android Fragment相关实例

    通过理解并熟练掌握以上知识点,你将能够有效地在Android应用中使用Fragment,构建更加灵活和响应式的用户界面。在实际项目中,你可以参考提供的"FragmentTest"文件,进一步学习和实践Fragment的各种用法。

    Fragment实例-Android Studio项目

    Fragment是Android应用开发中的一个重要组件,它是在Android 3.0(API级别11)引入的,用于构建可重用的、模块化的用户界面部分。在这个"Fragment实例-Android Studio项目"中,我们可以深入理解Fragment的使用方法...

    Fragment实现界面交互小实例<2>

    本实例主要关注Fragment如何在实际应用中实现界面交互,通过分析和实践,我们将深入理解Fragment的生命周期、通信机制以及如何在布局中嵌入和替换Fragment。 首先,Fragment的生命周期与Activity紧密相关,但又具有...

    Android 首页Fragment切换常用姿势

    在Android应用开发中,Fragment是UI组件的重要组成部分,它允许我们构建可重用、模块化的界面。本教程将深入探讨如何在首页实现Fragment的切换,主要介绍两种常见方法:Fragment的显示与隐藏以及通过ViewPager进行...

    Fragment实现tab实例

    它可能包括了对Fragment的实例化、TabHost的配置以及与之相关的布局文件。"JavaApk源码说明.txt"则可能是对源码的简单说明,帮助理解代码的运行逻辑。 通过这个实例,开发者可以学习到如何将Fragment与TabHost结合...

    Android七种layout布局实例(可直接运行)

    在Android开发中,布局(Layout)是构建用户界面的基础,它定义了屏幕上元素的排列方式和相互关系。本文将深入探讨五种基本的布局管理器:FrameLayout、LinearLayout、RelativeLayout、TableLayout以及TabLayout,...

    安卓Android源码——Fragment实现tab实例 代码.rar

    在安卓应用开发中,`Fragment` 是一个非常重要的组件,它是 Android SDK 提供的一种机制,允许开发者在活动中添加可拆分、复用的用户界面部分。`Fragment` 的使用极大地提高了应用的灵活性和可维护性,尤其是在设计...

    fragmentdemo简单实例

    Fragment允许开发者将一个应用程序的用户界面拆分为多个可独立管理的部分,这些部分可以在Activity之间动态添加、删除或替换,提供了更灵活的界面布局和导航。 在"fragmentdemo简单实例"中,我们可以学习到以下几个...

    Fragment实例一(源码)

    标题"Fragment实例一(源码)"暗示我们将探讨一个关于Fragment的简单实现,这通常包括创建一个新的Fragment类,将它添加到Activity中,并处理与之相关的生命周期方法。在Android Studio中,开发者通常会创建一个继承...

    android fragment 介绍与实例

    Android Fragment是Android开发中用于设计灵活、可重用的用户界面组件的一种机制。它是为了应对不同屏幕尺寸和配置的多样性而设计的,允许开发者将界面分割成可以独立管理的模块。通过使用Fragment,可以在多个...

    Android Fragment使用之实例演示

    通过实例化Fragment,设置布局,监听用户交互,以及处理状态保存和恢复,我们可以创建更加丰富和动态的应用界面,尤其适合大屏幕设备。在实际开发中,理解并熟练运用Fragment能够提升应用的用户体验和可维护性。

Global site tag (gtag.js) - Google Analytics