文档章节

滑动菜单+Tab页

chenruibing
 chenruibing
发布于 2015/06/02 18:37
字数 486
阅读 63
收藏 0

详细可以查看滑动菜单博文,除了标记的,其他都基本一样。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/white"
    android:orientation="vertical" >

    <!--
         <FrameLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="1.0" />
    -->

    <view
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="1.0"
        class="com.heima.news.view.LazyViewPager"
         />
    <!-- </FrameLayout> -->

    <RadioGroup
        android:id="@+id/main_radio"
        android:layout_width="fill_parent"
        android:layout_height="60dp"
        android:layout_gravity="bottom"
        android:paddingTop="2dp"
        android:gravity="center_vertical"
        android:background="@drawable/bottom_tab_bg"
        android:orientation="horizontal" >

        <RadioButton
            android:id="@+id/rb_function"
            style="@style/main_tab_bottom"
            android:drawableTop="@drawable/icon_function"
            android:text="@string/tab_function" />


        <RadioButton
            android:id="@+id/rb_news_center"
            style="@style/main_tab_bottom"
            android:drawableTop="@drawable/icon_newscenter"
            android:text="@string/tab_news_center" />


        <RadioButton
            android:id="@+id/rb_smart_service"
            style="@style/main_tab_bottom"
            android:drawableTop="@drawable/icon_smartservice"
            android:text="@string/tab_smart_service" />


        <RadioButton
            android:id="@+id/rb_gov_affairs"
            style="@style/main_tab_bottom"
            android:drawableTop="@drawable/icon_govaffairs"
            android:text="@string/tab_gov_affairs" />


        <RadioButton
            android:id="@+id/rb_setting"
            style="@style/main_tab_bottom"
            android:drawableTop="@drawable/icon_setting"
            android:text="@string/tab_setting" />
    </RadioGroup>

</LinearLayout>



package com.heima.news.fragment;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;

import com.heima.news.R;
import com.heima.news.base.BaseFragment;
import com.heima.news.base.BasePage;
import com.heima.news.home.FunctionPage;
import com.heima.news.home.GovAffairsPage;
import com.heima.news.home.NewsCenterPage;
import com.heima.news.home.SettingPage;
import com.heima.news.home.SmartServicePage;
import com.heima.news.view.LazyViewPager;
import com.heima.news.view.LazyViewPager.OnPageChangeListener;

public class HomeFragment extends BaseFragment {
	/**
	 * 1 初始化viewpager 通过使用adapter的形式去实现
	 */
	private View view;
	private LazyViewPager viewpager;
	private RadioGroup main_radio;
	private int checkedId = R.id.rb_function;

	@Override
	public View initView(LayoutInflater inflater) {
		view = inflater.inflate(R.layout.frag_home2, null);
		//中间显示的区域
		viewpager = (LazyViewPager) view.findViewById(R.id.viewpager);
		main_radio = (RadioGroup) view.findViewById(R.id.main_radio);
		return view;
	}

	List<BasePage> list = new ArrayList<BasePage>();;

	@Override
	public void initData(Bundle savedInstanceState) {
		
		list.add(new FunctionPage(ct));
		list.add(new NewsCenterPage(ct));
		list.add(new SmartServicePage(ct));
		list.add(new GovAffairsPage(ct));
		list.add(new SettingPage(ct));
		HomePageAdapter adapter = new HomePageAdapter(ct, list);
		viewpager.setAdapter(adapter);
		

		main_radio.setOnCheckedChangeListener(new OnCheckedChangeListener() {

			@Override
			public void onCheckedChanged(RadioGroup group, int checkedId) {
				switch (checkedId) {
				case R.id.rb_function:
					viewpager.setCurrentItem(0, false);
					checkedId = 0;
					break;

				case R.id.rb_news_center:
					viewpager.setCurrentItem(1, false);
					checkedId = 1;
					break;
				case R.id.rb_smart_service:
					viewpager.setCurrentItem(2, false);
					checkedId = 2;
					break;
				case R.id.rb_gov_affairs:
					viewpager.setCurrentItem(3, false);
					checkedId = 3;
					break;
				case R.id.rb_setting:
					viewpager.setCurrentItem(4, false);
					checkedId = 4;
					break;
				}

			}
		});
		main_radio.check(checkedId);
	}

	class HomePageAdapter extends PagerAdapter {
		private Context ct;
		private List<BasePage> list;

		public HomePageAdapter(Context ct, List<BasePage> list) {
			this.ct = ct;
			this.list = list;
		}

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return list.size();
		}

		@Override
		public boolean isViewFromObject(View arg0, Object arg1) {
			// TODO Auto-generated method stub
			return arg0 == arg1;
		}

		@Override
		public void destroyItem(ViewGroup container, int position, Object object) {
			// TODO Auto-generated method stub
//			super.destroyItem(container, position, object);
			((LazyViewPager) container).removeView(list.get(position)
					.getRootView());

		}

		@Override
		public Object instantiateItem(ViewGroup container, int position) {
			((LazyViewPager) container).addView(list.get(position)
					.getRootView(), 0);
			return list.get(position).getRootView();
		}

	}
}



© 著作权归作者所有

上一篇: 反射
下一篇: 滑动菜单
chenruibing
粉丝 12
博文 203
码字总数 109101
作品 0
潮州
私信 提问
关于android滑屏菜单和tab菜单实现

关于android滑屏菜单和tab菜单实现 前言 Android5.0的改版涉及到滑屏菜单以及tab菜单.关于滑屏菜单的实现网上有很多的实现方案.大多都是继承实现ViewGroup,并对Touch事件进行拦截和处理.这里...

ZHL
2013/09/06
0
0
改进 UI 微交互的实用建议

下面是一些优秀和更高明的 UI 微交互对比示例。随着一点点地调整,你可以用动画来改进你的 UI 布局。 所列出的交互展示了状态之间的连续性,表示共享元素之间的关系,并且将用户的注意力引向...

oschina
2018/03/21
3.2K
6
AppCan 移动应用开发项目源码分享:嗡嗡旅游App开发

开发者介绍:老家湖北巴东好山好水,神农溪、巴人河、三里城等都是旅游好去处。中秋节回了趟老家,看到家乡的原生态景色吸引了大批游客,由此萌发了想法:用移动技术开发一个App试水,把家乡...

梅朵
2016/02/24
1K
6
android UI Tab切页效果 总结

目前市面上APP 切页效果有两类(just android) 1.底部Tab点击不同的按钮来切换页面 && 滑动。 代表: 微信、豆瓣 底部一排Tab标签,顶部没有tab;底部的tab标签切换可以通过点击不同的按钮来...

看不懂就多看几遍
2016/12/07
55
0
Android RadioButton实现Tab问题

我是一名Java程序猿,最近想学习Android应用开发,于是下载了OSC的Android版本客户端源码。然后参照客户端的功能,自己动手实践。先参照实现了用RadioButton实现的底部Tab栏,以及头部自定义...

熊猫大侠到此一游
2013/05/22
2.7K
1

没有更多内容

加载失败,请刷新页面

加载更多

责任链模式

//这篇博客的博主真的不错,解析的都很清晰明了, https://blog.csdn.net/jason0539/article/details/45091639

南桥北木
30分钟前
2
0
Flutter -------- dio网络请求

dio是Flutter中文网开源的一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时等... 1.添加依赖# dependencies: dio: 2.1.x #...

切切歆语
40分钟前
1
0
PHP的学习

PHP变量的命名必须以$符开始,如: $i;$j;$name; $符后面的第一个字符不可以是数字,只能是字母或者下划线(_)。 除了下划线(_)之外,变量中不能出现任何特殊字符,也就是变量只能包含...

墨冥
59分钟前
2
0
一篇文章彻底搞懂Java虚拟机

概念: 虚拟机:指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 ,是物理机的软件实现。常用的虚拟机有VMWare,Visual Box,Java Virtual Machine(Jav...

骚年锦时
今天
3
0
C 语言 二级指针的使用

#include <stdio.h>#include <stdlib.h>typedef struct node Node;struct node {int data;struct node* next;struct node* prev;};Node head;Node* insert(Node......

小张525
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部