主页面的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;
}