Android View不为人知的各种小属性和一些有用的小方法

来源:互联网 发布:新闻表数据库设计 编辑:程序博客网 时间:2024/06/03 02:26

一  此篇博客的目的

我在安卓的开发过程中,为了实现一些效果,绞尽脑汁的去设计布局,用各种麻烦的方式去实现,其实有些东西,google早就想到了,并帮我们提供了一些简便的方法,然而   我们却不知道,所以写下此篇博客的目的就是记录我在开发过程遇到的小属性和小方法。

二 开始吧


1 view :

a: view.getBackground().setAlpha(). 当两个控件 引用同一个资源时  两个控件共享该资源的同一状态  ,如果其中一个控件改变该状态,则另一个控件的也改变,常见的就是在项目中,我改变一个图片的透明度 另一个引用该图片的地方的透明度 也该边了  解决办法就是让这个drawable可变,这个操作是不可逆的。一个可变Drawable可以保证不与其它的Drawable分享一个状态。当你需要修改资源中的Drawable的属性时这个方法是非常有用的,因为默认情况下加载相同资源的所有Drawable实例拥有同一个状态,如果你在一个地方改变了状态,其它的实例也会跟着改变。view.getBackground().mutate().setAlpha().完美解决 。让改变的地方 重新拥有一份实例。


2 TextView :

a: 属性:

   android:includeFontPadding设置文本是否包含顶部和底部额外空白,默认为true。左右默认不包含

   android:lineSpacingExtra设置行间距。

b 方法:

   textview.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG); 设置删除线



3 checkBox 和 radioButton

a:我们知道  当  一个布局中  有CheckBox 和radioButton时  会优先获取焦点  但是 有时候 我们需要 它失去焦点  把点击事件 交给  item来做  所以我们需要在布局使用CheckBox和RadioButton的地方  设置三个属性 

android:clickable="false"android:focusable="false"android:focusableInTouchMode="false"

4 scrollView

a: 使用scrollView时的子节点 必须是 有且只有一个  一般是linerlayout

b: 在用Scrollview时,里面包裹的内容超过了屏幕长度,当进入这个界面时ScrollView直接自动滑动到最底部。解决办法:在ScrollView下面的ViewGroup(linerlayout)中设置android:descendantFocusability为blocksDescendants,相同的道理,这是让该ViewGroup先获取到焦点,就不会滑动到下面。

c: 滚动条的设置:

    scrollBars=“none”  滚动条不显示 ,  fadeScrollBars=“false”  滚动条一直显示 

       

   


  


0 0
原创粉丝点击