主页面的RadioButton 去调Button:android:button=”@null”
字体居中:android:gravity=”center_horizontal”
上方图片:android:drawableTop
设置drawableTop和text的选择器android:state_checked=”true”
ViewPager和RadioGroup互相监听:
radioGroup.check(R.id.home);
viewPager.setCurrentItem(0, false);
ViewPager禁止滑动:
public boolean onTouchEvent(MotionEvent arg0) {
return false;
}
抽取滑动的4个叶签的基类:BasePager
每个类的标题栏一样,内容不一样,可以将内容设置成FrameLayout动态向里面添加子View
initView();将rootView实例化。这样便可以在ViewPager的Adapter上滑动rootView。
initData();初始化数据,供后续控件数据显示。因为ViewPager是预加载的,如果在Adapter的初始化方法中initData(),那么会导致数据提前加载,这里有两个解决方案:
一:可以使用LazyViewPager实现延迟加载
二:在ViewPager改变当前页的时候调用initData()

Pager2的实现:
首先Pager2获取网络数据,这里有一个很好用的github工具xUtils,
HttpUtils httpUtils = new HttpUtils();
httpUtils.send(HttpMethod.GET, ConstantValues.URL, new RequestCallBack() {

        @Override        public void onFailure(HttpException arg0, String arg1) {        }        @Override        public void onSuccess(ResponseInfo<String> arg0) {            Log.d("result", arg0.result);            dealData(arg0.result);        }

});
访问到数据以后可以给相应的控件设置数据。
解析访问到数据这里用到了Gson。
点击侧边栏,实现界面在Pager2中的切换:
此时可以动态的往FrameLayout中添加子View,当然每次添加之前要把之前的子View remove掉。
侧边栏每次切换的rootView我们添加到集合里,方便Pager2维护。
Pager21,Pager22,Pager23,Pager24,同BasePager
点击侧边栏按钮,切换界面:
由于界面的rootView是在Pager2中维护的,那么MenuFragment通过Activity拿到HomeFragment后,可以在HomeFragment中拿到Pager2对象,拿到Pager2对象后,便可切换Pager。
侧边栏点击后子Item变色:
ListView点击变色这种一定要想到getView()的重绘,也就是notify的调用,那么我们可以设置一些变量,在getView()方法中,一点击,改变这些变量的值,然后notify一下,就可以再次调用getView()方法。
listView.setOnItemClickListener(new OnItemClickListener() {

        @Override        public void onItemClick(AdapterView<?> parent, View view,                int position, long id) {            currentPosition = position;            mAdapter.notifyDataSetChanged();        }

});
public View getView(int position, View convertView, ViewGroup parent) {
View view = View.inflate(context, R.layout.menu_lv_item, null);
TextView textView = (TextView) view
.findViewById(R.id.menu_lv_item_tv);
textView.setText(datas.get(position).title);
if(position == currentPosition){
textView.setTextColor(Color.RED);
Drawable drawable = context.getResources().getDrawable(R.drawable.menu_arr_select);
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
textView.setCompoundDrawables(drawable, null, null, null);
}else{
textView.setTextColor(Color.WHITE);
Drawable drawable = context.getResources().getDrawable(R.drawable.menu_arr_normal);
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
textView.setCompoundDrawables(drawable, null, null, null);
}
return view;
}

更多相关文章

  1. 在Android中查看和管理sqlite数据库
  2. Android图表控件MPAndroidChart——曲线图LineChart(多条曲线)动态
  3. Android四种Activity的加载模式
  4. Android联系人数据库全解析(1)
  5. [转」android中的数据库操作
  6. 数据存储和界面展示一
  7. android中的数据库操作ZZ
  8. 系出名门Android(9) - 数据库支持(SQLite),
  9. Android 图片加载Bitmap OOM错误解决办法

随机推荐

  1. Mysql索引选择以及优化详解
  2. MySQL中explain语句的基本使用教程
  3. MySQL mysqladmin客户端的使用简介
  4. MySQL MGR搭建过程中常遇见的问题及解决
  5. MySQL 权限控制细节分析
  6. MySQL 权限控制详解
  7. MySQL 利用frm文件和ibd文件恢复表数据
  8. MySQL使用Xtrabackup备份流程详解
  9. MySQL GTID全面总结
  10. MySQL大库搭建主从的一种思路分享