android视图的一些总结

来源:互联网 发布:php九九乘法表 编辑:程序博客网 时间:2024/05/01 22:42

先把要写的写下来,有时间再详写

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属性并不是绝对属性,而是指靠右的距离不小于这个值,这样理解就比较容易了


0 0
原创粉丝点击