Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >6.侧边栏菜单详情页

6.侧边栏菜单详情页

作者头像
六月的雨
发布于 2022-01-12 05:29:27
发布于 2022-01-12 05:29:27
45300
代码可运行
举报
文章被收录于专栏:Android开发指南Android开发指南
运行总次数:0
代码可运行

这是在viewpager里又加入了viewpager,先写viewpager,再写indicate

1. 菜单详情页基类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public abstract class BaseMenuDetailPager {	public Activity mActivity;	public View mRootView;// 根布局对象	public BaseMenuDetailPager(Activity activity) {		mActivity = activity;		mRootView = initViews();	}	/**	 * 初始化界面	 */	public abstract View initViews();	/**	 * 初始化数据	 */	public void initData() {	}}

2.页签详情页

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class TabDetailPager extends BaseMenuDetailPager {	NewsTabData mTabData;	private TextView tvText;	public TabDetailPager(Activity activity, NewsTabData newsTabData) {		super(activity);		mTabData = newsTabData;	}	@Override	public View initViews() {		tvText = new TextView(mActivity);		tvText.setText("页签详情页");		tvText.setTextColor(Color.RED);		tvText.setTextSize(25);		tvText.setGravity(Gravity.CENTER);		return tvText;	}	@Override	public void initData() {		tvText.setText(mTabData.title);	}}

3. 菜单详情页-新闻

news_menu_detail,不过写到这里时里面只有一个viewpager

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal" >        <com.viewpagerindicator.TabPageIndicator            android:id="@+id/indicator"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_weight="1" />        <ImageButton            android:id="@+id/btn_next"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="center_vertical"            android:background="@android:color/transparent"            android:padding="5dp"            android:src="@drawable/news_cate_arr" />    </LinearLayout>    <android.support.v4.view.ViewPager        android:id="@+id/vp_menu_detail"        android:layout_width="match_parent"        android:layout_height="match_parent" /></LinearLayout>
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class NewsMenuDetailPager extends BaseMenuDetailPager {	private ViewPager mViewPager;	private ArrayList<TabDetailPager> mPagerList;//11个页签	private ArrayList<NewsTabData> mNewsTabData;// 11个页签的网络数据,在NewsData里定义了	public NewsMenuDetailPager(Activity activity,//这样写就把解析的11个页面传过来了			ArrayList<NewsTabData> children) {		super(activity);		mNewsTabData = children;	}	@Override	public View initViews() {		View view = View.inflate(mActivity, R.layout.news_menu_detail, null);		mViewPager = (ViewPager) view.findViewById(R.id.vp_menu_detail);		return view;	}	@Override	public void initData() {		mPagerList = new ArrayList<TabDetailPager>();		// 初始化页签数据		for (int i = 0; i < mNewsTabData.size(); i++) {			TabDetailPager pager = new TabDetailPager(mActivity, mNewsTabData.get(i));			mPagerList.add(pager);		}		mViewPager.setAdapter(new MenuDetailAdapter());	}	class MenuDetailAdapter extends PagerAdapter {		@Override		public int getCount() {			return mPagerList.size();		}		@Override		public boolean isViewFromObject(View arg0, Object arg1) {			return arg0 == arg1;		}		@Override		public Object instantiateItem(ViewGroup container, int position) {			TabDetailPager pager = mPagerList.get(position);			container.addView(pager.mRootView);			pager.initData();			return pager.mRootView;		}		@Override		public void destroyItem(ViewGroup container, int position, Object object) {			container.removeView((View) object);		}	}}

4.其他页面,只是暂时这样写

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/** * 菜单详情页-互动 *  * @author Kevin *  */public class InteractMenuDetailPager extends BaseMenuDetailPager {	public InteractMenuDetailPager(Activity activity) {		super(activity);	}	@Override	public View initViews() {		TextView text = new TextView(mActivity);		text.setText("菜单详情页-互动");		text.setTextColor(Color.RED);		text.setTextSize(25);		text.setGravity(Gravity.CENTER);		return text;	}}

来自为知笔记(Wiz)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-10-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
7.ViewPagerIndicator
 ViewPager指针项目,在使用ViewPager的时候能够指示ViewPager所在的位置,就像Google Play中切换的效果一样,还能使用在应用初始化的介绍页面 1. 引入ViewPagerIndicator库 2. 编写布局文件          <com.viewpagerindicator.TabPageIndicator         android:id="@+id/indicator"         android:layout_width="fill_parent"    
六月的雨
2018/05/14
5820
4.json解析
格式 {"name":"zhangsan", "age":18, "books":[{"name":"金瓶","price":10}, {"name":"红楼梦","price":20}]} 解析 1.JSONObject [{"id":"5","version":"5.5","name":"Angry Birds"},{"id":"6","version":"7.0","name":"Clash of Clans"},{"id":"7","version":"3.5","name":"Hey Day"}]
六月的雨
2018/05/14
1.5K0
9.indicate、xutils、json
json数据  页签详情页数据 public class TabData { public int retcode; public TabDetail data;//不是数组的话类型就是这个 public class TabDetail { public String title; public String more; public ArrayList<TabNewsData> news; public ArrayList<TopNewsData> topnews; @Override pu
六月的雨
2018/05/14
6930
3.复杂的viewpager
实现这样的效果: 1.主页面布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:t
六月的雨
2018/05/14
7960
看代码学AndroidUI - Tab
最近慢慢学习一点安卓,先看了些基础的,还处于很初级的阶段,平常都是面对弱类型的语言,python,js,现在看java突然有点不适应。 这里推荐郭神的《第一行代码》,不过书中关于UI,界面方面的说的比较少。 俗话说:Don't BB, show me the code. 于是去看看官方文档关于UI的代码例子http://developer.android.com/intl/zh-cn/samples/ui.html 官方提供的源代码可以下载之后导入Android Studio,或者当启动Android St
Bob.Chen
2018/05/02
9620
看代码学AndroidUI - Tab
2.SlidingMenu(侧边栏效果)
 > 使用步骤 库:别的程序可以用它的方法、图片。 下载的其中一个框架的例子是没有actionBar的,example_update 引入出错可能是俩个v4包冲突了,删掉工程里的一个,不要删了库里的,如果还有错误看probles里说什么或者重启,或者选中工程右键-build path-最后一项,把有x的移除,这是运行环境的问题。而我的问题是软件里自带的v7程序里的v4包和库里的v4包冲突了,我将这个替换掉,发现以前所有的工程都报错了,发现里这些工程里的包重新导一下就可以了,可是有xutils的工程不行,可能
六月的雨
2018/05/14
1.8K0
12、json、GridView、缓存
1.解析json数据: public class PhotosData { public int retcode; public PhotosInfo data; public class PhotosInfo { public String title; public ArrayList<PhotoInfo> news; } public class PhotoInfo { public String id; public String listimage; public String pubd
六月的雨
2018/05/14
8240
5.侧边栏逻辑
UI框架结构图 相互传递数据的时候用这张图看,思路会比较清晰 1. 侧边栏布局 <RelativeLayout xmlns:android="http://schemas.android.com/ap
六月的雨
2018/05/14
1.8K0
13.json解析
格式 {"name":"zhangsan", "age":18, "books":[{"name":"金瓶","price":10}, {"name":"红楼梦","price":20}]} 解析 1
六月的雨
2018/05/14
1.5K0
Android Material Design之Toolbar与Palette实践
前言 我们都知道Marterial Design是Google推出的全新UI设计规范,如果对其不太了解的可以看下:Material design非官方中文指导手册 ,或者我的前面几篇Material Design的译文,相比之前Google在Android Holo风格上平平淡淡的表现不同,Material Design现在是被Google所比较重视的。在推出这门全新设计语言后,Android上自家的应用很快就使用Material Design全新设计了,如Play商店,Google Map,Google+
xiangzhihong
2018/02/01
1.4K0
Android Material Design之Toolbar与Palette实践
Android中Fragment+ViewPager的配合使用
官方推荐 ViewPager与Fragment一起使用,可以更加方便的管理每个Page的生命周期,这里有标准的适配器实现用于ViewPager和Fragment,涵盖最常见的用例。FragmentPagerAdapter和FragmentStatePagerAdapter这两个类都有简单的代码显示如何构建一个完整的用户界面与他们。 适配器类: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
欢醉
2018/01/22
1.1K0
Android中Fragment+ViewPager的配合使用
ViewPager轻松完成TabHost效果
上一期学习了ViewPager的简单使用,本期一起来学习ViewPager的更多用法。 相信很多同学都使用过今日头条APP吧,一打开主界面就可以看到顶部有很多Tab,然后通过左右滑动来切换,就
分享达人秀
2018/02/05
1.7K0
ViewPager轻松完成TabHost效果
Android实现底部状态栏切换
Android开发过程中,特别是新开的项目,底部状态栏的切换使用的频率非常的高,主要的实现方式有:
SoullessCoder
2019/08/07
5.4K0
Android实现底部状态栏切换
Android开发之ViewPager+Fragment+FragmentTabHost实现底部菜单
在Android开发中,底部菜单是经常要使用的,如微信、微博、支付宝等,实现底部菜单有好几种方式,大致分为: 通过TabWidget实现 隐藏TabWidget,通过RadioGroup和RadioButton实现底部菜单栏 通过FragmentTabHost实现 通过5.0以后的TabLayout实现 通过最近推出的 Bottom navigation ---- 本文的主题是 ViewPager+Fragment+FragmentTabHost 实现底部菜单 1、构造4个Fragment,每个布局类似如下
YungFan
2018/04/24
1.3K0
使用ViewPager+Fragment实现选项卡切换效果
实现效果 本实例主要实现用ViewPage和Fragment实现选项卡切换效果,选项卡个数为3个,点击选项卡或滑动屏幕会切换Fragment并实现选项卡下方下边框条跟随移动效果。 本程序用androi
古时的风筝
2018/01/08
4.1K0
使用ViewPager+Fragment实现选项卡切换效果
首页-底部Tab导航(菜单栏)的实现:FragmentTabHost+ViewPager+Fragment
Android开发中使用底部菜单栏的频次非常高,主要的实现手段有以下: - TabWidget - 隐藏TabWidget,使用RadioGroup和RadioButton - FragmentTabHost - 5.0以后的TabLayout - 最近推出的 Bottom navigation
Carson.Ho
2019/02/22
2.1K0
Android之ViewPager的简单使用[通俗易懂]
Android 3.0后引入的一个UI控件——ViewPager(视图滑动切换工具)
全栈程序员站长
2022/09/15
4.6K0
Android之ViewPager的简单使用[通俗易懂]
10.下拉刷新、加载更多、标记已读、轮播条、缓存
下拉刷新、加载更多、标记已读、轮播条、缓存 下拉刷新------- 1.addHeaderView必须在setAdapter之前调用 2.将paddingTop设置一个headerView高度的负值去隐藏它 getHeight()和getMeasuredHeight()的区别: getMeasuredHeight():获取测量完的高度,只要在onMeasure方法执行完,就可以用                    它获取到宽高,在自定义控件内部多使用这个 使用view.measure(0
六月的雨
2018/05/14
1.2K0
自定义 behavior - 完美仿 QQ 浏览器首页,美团商家详情页
记得两年前的时候,曾写过自定义 behavior 的文章 自定义 Behavior -仿新浪微博发现页的实现,到现在差不多有一万多的阅读量吧。
程序员徐公
2019/03/15
1.4K0
自定义 behavior - 完美仿 QQ 浏览器首页,美团商家详情页
相关推荐
7.ViewPagerIndicator
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验