布局中@null的代码实现方式

布局中通常会用到@null。如RadioButton常用的技巧通过RadioGroup实现Tab,需要设置android:button="@null"。如果要在代码中动态创建控件,android中并不能找到相关的属性或方法。搜索均无解决办法,最后想到一个变通的方法:通过透明色获取drawable。

Java代码   收藏代码
  1. setButtonDrawable(getResources().getDrawable(android.R.color.transparent))  
 

   实际还是可以通过布局的方法来动态创建控件。先创建一个RadioButton的rb.xml

 

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RadioButton xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="wrap_content"  
  5.     android:button="@null" >  
  6.   
  7. </RadioButton>  

 

再在代码生成RadioButton

 

Java代码   收藏代码
  1. RadioButton rb =(RadioButton)LayoutInflater.from(getContext()).inflate(R.layout.rb, null);  

 这种方式的好处是样式等属性可以在布局中统一指定省的查sdk寻找相关属性的设置方法。

你可能感兴趣的:(布局中@null的代码实现方式)