先把要写的写下来,有时间再详写
1、有关weight和width/height优先度的问题
2、有关padding和margin的一问题:padding在父容器,margin在子容器可以实现相同的效果,但是依然有不同之处
3、有关父容器的gravity和oritation的区别:虽然都是对子控件的位置进行设置,oritation功能较少,仅仅垂直和水平,gravity功能则较多,中心,水平中心,垂直中心等
4、gravity和layout_gravity区别,以及相关的问题前者是对容器而言,后者是对本身而言
5、不同布局下部分属性失效的问题,如RelativeLayout下没有padding属性,还有相关问题如LinearLayout下选择layout_marginRight属性无效等问题
6、actionbar上添加button以外的控件等问题,比如actionbar上添加开关控件
----------------------------------------------------------------------------------------------------------------------------------------------------
(2015年11月19日16:18:56)
今天总结下spinner和scrollView,首先是spinner,要给这个下拉框设置选择事件容易,但要设置点击事件则需要自己处理,它本身没有带点击事件,咱们可以用触摸事件代替
public class mOnTouchListener implements View.OnTouchListener{
@Override
public boolean onTouch(View v, MotionEvent event) {
case R.id.spinner_meals:{
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
scrollView.smoothScrollTo(0, scrollViewMeasuredHeight - height);
break;
}
break;
}
}
return false;
}
}
还有一点就是不用设置点击间隔,也就是不用防抖,因为当下拉框展开的时候是无法获取触摸事件的
让后就是scrollView,要在程序运行当中设置位置可以用如下方式
final int height=scrollView.getHeight();//显示部分
final int scrollViewMeasuredHeight=scrollView.getChildAt(0).getMeasuredHeight();//实际部分
final int scrollY=scrollView.getScrollY();//超出部分
Log.v("TrafficMng","view.getScrollY()="+scrollY);
Log.v("TrafficMng","view.getHeight()="+height);
Log.v("TrafficMng","view.getMeasuredHeight()="+scrollViewMeasuredHeight);
scrollView.scrollTo(0,scrollViewMeasuredHeight-height);//滑到底
scrollView还有几个方法,
scrollView.smoothScrollTo(0,10);//动画滑动
scrollView.smoothScrollBy(0,10);
scrollView.scrollBy(0,10);//相对位置
----------------------------------------------------------------------------------------------------------------------------------------------------------
(2015年11月23日15:35:47)
抽下时间说下第五个问题,之所以在linearLayout下layout_marginRight无效并不是真的无效,而是先后问题,在linearLayout的orientation设置为horizontal时,控件默认是从左向右排列的,layout_marginRight属性并不是绝对属性,而是指靠右的距离不小于这个值,这样理解就比较容易了