学习心得(二)
来源:互联网 发布:sql 库存分配 编辑:程序博客网 时间:2024/06/07 09:34
主页面的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;
}
- 学习心得(二)
- ExtJS学习心得(二)
- ExtJS学习心得(二)
- servlet学习心得(二)
- ExtJS学习心得(二)
- RDM学习心得(二)
- linux学习心得(二)
- 计算机网络学习心得(二)
- JavaScript学习心得(二)
- linux学习心得(二)
- hibernate学习心得(二)
- PS学习心得(二)
- 学习心得(二)
- filter学习心得(二)
- 嵌入式学习心得(二)
- c++学习心得(二)
- 学习心得(二)
- php学习心得(二)
- U盘无法安装win10提示Your PC/Device needs to be repaired
- cocos2d-x设计模式发掘之三:管理者模式
- LightOJ - 1166 Old Sorting(贪心)
- [Android通信]Volley(一):String、Json和Image请求
- 正则表达式
- 学习心得(二)
- ios基础训练(一)
- cocos2d-x设计模式发掘之四:外观模式
- Easy Guide – Fast Start for sipXecs Admins
- 杭电acm2523
- cocos2d-x设计模式发掘之五:防御式编程模式
- 数据库存储过程及其与函数区别
- LightOJ - 1425 The Monkey and the Oiled Bamboo(贪心)
- 01背包问题 动态规划