布局setmargins不适用于大屏幕

时间:2017-11-03 17:24:15

标签: android

这是我的问题:

创建具有4个图像按钮作为单选按钮的放射性组。它适用于所有屏幕尺寸,但在大屏幕中,setmargin会被忽略。所有四个按钮都触摸它们旁边的按钮。

setmargin在正常屏幕尺寸下工作正常。

以下是代码:

ImageButton botaoSim = criaImageButton(++id, R.drawable.ic_like_grey, rootView.getContext());
ImageButton botaoNao = criaImageButton(++id, R.drawable.ic_dislike_grey, rootView.getContext());
ImageButton botaoAvariado = criaImageButton(++id, R.drawable.ic_taca_quebrada, rootView.getContext());
ImageButton botaoNaoSeAplica = criaImageButton(++id, R.drawable.ic_na, rootView.getContext());
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(100, 100);
layoutParams.setMargins(0, 0, 20, 0);
radioGroup.addView(botaoSim, layoutParams);
radioGroup.addView(botaoNao, layoutParams);
radioGroup.addView(botaoAvariado, layoutParams);
radioGroup.addView(botaoNaoSeAplica, layoutParams);
radioGroup.setOnCheckedChangeListener(ToggleListener);

我尝试过使用padding,ViewGroup.LayoutParams,RelativeLayout.layoutParams,layoutParams.rightMargin,view.requestLayout(),但都没有工作。

提前致谢。

1 个答案:

答案 0 :(得分:0)

解决:

如果遇到同样的问题:在大屏幕上忽略radioButtons之间的空格。

您可以使用不可见的自定义分隔符,创建 drawable

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">    
        <size android:width="10dip" />
        <solid android:color="@android:color/transparent" />
    </shape> 

然后在你的radioGroup中使用divider:

    radioGroup.setDividerDrawable(getResources().getDrawable(R.drawable.vertical_divider));
    radioGroup.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);