Android:创建4个宽度相等的按钮(相对布局)

时间:2012-06-01 21:34:43

标签: android android-layout relativelayout

我需要创建4个宽度相等的按钮。我知道如何使用线性布局和权重,但这对我来说是不可接受的。我有一些与我的4个按钮相关的其他视图,所以我想在相对布局中做所有事情。有可能吗?

3 个答案:

答案 0 :(得分:1)

如何将按钮的宽度设置为标准尺寸?

<Button
    android:width="75dp"
    ... />

<强>加成

要在运行时找到显示的宽度:

int width = getWindowManager().getDefaultDisplay().getWidth() / 4; 
// Set this width to your buttons

答案 1 :(得分:0)

选择其中一个视图,告诉其他视图具有相同的宽度和高度。为了获取视图的大小,请使用以下内容:

private static void runJustBeforeBeingDrawn(final View view, final Runnable runnable)
{
    final ViewTreeObserver vto = view.getViewTreeObserver();
    final OnPreDrawListener preDrawListener = new OnPreDrawListener()
    {
        @Override
        public boolean onPreDraw()
        {
            Log.d(App.APPLICATION_TAG, CLASS_TAG + "onpredraw");
            runnable.run();
            final ViewTreeObserver vto = view.getViewTreeObserver();
            vto.removeOnPreDrawListener(this);
            return true;
        }
    };
    vto.addOnPreDrawListener(preDrawListener);
}

runJustBeforeBeingDrawn的替代方案:https://stackoverflow.com/a/28136027/878126

答案 2 :(得分:0)

我不确定,但我认为没有权重标记,唯一可以做到这一点的方法是运行/编程设置它。我通过在 integer.xml 中设置常量来完成此操作,如下所示: 的

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer name="numberOfButtons">4</integer>
</resources>

并且,在您的Adapter / Activity类中,类似于以下内容: 的

DisplayMetrics dm = new DisplayMetrics();
// dm holds your structure of resolution
context.getWindowManager().getDefaultDisplay().getMetrics(dm);

int width = dm.getWidth();
btn1.setWidth(width/getInteger(R.integer.numberOfButtons));
btn2.seTwidth(width/getInteger(R.integer.numberOfButtons));
btn3.seTwidth(width/getInteger(R.integer.numberOfButtons));
btn4.seTwidth(width/getInteger(R.integer.numberOfButtons));

希望这会以某种方式帮助你。