您的位置:首页 > 其它

学习心得(二)

2015-11-06 22:33 253 查看
主页面的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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: