wvi*_*ana 7 android android-layout
我制作了一个自定义的RadioButton,在Android 5.0设备中看起来如下.
这些RadioButtons是动态创建的,如以下方法所示.因此第一种方法redioButtonPresenterApparence设置其外观去除圆(设置buttonDrwable到空.第二种方法在以后设置的按钮的背景.
private void radioButtonPresenterApparence(RadioButton presenter, int icon) {
Drawable drawable = getResources().getDrawable(icon);
presenter.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null);
presenter.setButtonDrawable(null);
presenter.setGravity(Gravity.CENTER);
}
private void updateButtonsBackground(){
int childCount = getChildCount();
BackgroundSelector bgSelector = new BackgroundSelector(childCount);
for(int i = 0; i < childCount; i++){
View rb = getChildAt(i);
rb.setBackgroundResource( bgSelector.getBackgroundResource(i) );
rb.requestLayout();
}
requestLayout();
}
Run Code Online (Sandbox Code Playgroud)
我的问题是在三星Android 4.4.4设备上测试相同(不确定其他制造商),它显示如下.
PS:这是一个创建RadioButton的代码.您可以使用以下方法检查它:
private void addPresenter(int icon){
RadioButton presenter = new RadioButton(getContext()); //Create new RadioButton
radioButtonPresenterApparence(presenter, icon); //Set icon and configure aparence
addView(presenter); //Add new button to Selector
presenterParentAparance(presenter); //Config button inside parent
requestLayout(); //Request layout update to Selector
}
Run Code Online (Sandbox Code Playgroud)
Mar*_*jan 10
在layout.xml中找到你的单选按钮并给它们:
android:button="@null"
Run Code Online (Sandbox Code Playgroud)
presenter.setButtonDrawable(null);
除了这实际上有效之外,这应该做同样的事情
编辑:
如果是代码创建按钮,请使用:
presenter.setButtonDrawable(new StateListDrawable());
Run Code Online (Sandbox Code Playgroud)
实际上有帮助,因为它相当于
android:button="@null"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1948 次 |
| 最近记录: |