0

プログラムで LinearLayout を作成しており、このレイアウトに 3 つのボタンを追加していますが、それらは上下に表示されています。

ボタンを並べて表示するにはどうすればよいですか?

周りを読んで、おそらく LayoutParams を設定する必要があることを理解しましたが、方法がわかりませんでした..

私はこれで試しましたが、うまくいきませんでした..

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.MATCH_PARENT
);
ll.addView(b1, layoutParams);
ll.addView(b2, layoutParams);
ll.addView(b3, layoutParams);

助けてくれてありがとう!

編集:

おそらく、詳細を追加する必要がありました。

レイアウトには他のものもありますが、問題はありません。ボタンのためだけに追加のレイアウトを作成しました。

ボタンは並んでいますが、幅が異なります.. : /

私はこれを試しましたが、助けにはなりませんでした..

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT,
            1f
);
4

4 に答える 4

3
ll.setOrientation(LinearLayout.HORIZONTAL);

横線配置でボタンを設定できます。

ただし、3 つのボタンすべてにバランスのとれたスペースを確保する必要があります。3 つのオブジェクトweightすべてのプロパティを に設定する必要があります。Button1

編集:

すべてのボタンに対してこれを行います。

LinearLayout.LayoutParams params = button.getLayoutParams();
params.weight = 1;
button.setLayoutParams(params);

すべてのボタンの重みを設定します。

よろしく、 Aqif Hamid

于 2012-06-30T12:11:05.910 に答える
2

これを試して:

ll.setOrientation(LinearLayout.HORIZONTAL);
于 2012-06-30T12:07:39.557 に答える
0

それを試してみてください:

    LinearLayout gvDivisao = (LinearLayout) findViewById(R.id.gvDivisao);
    LayoutInflater inflater = getLayoutInflater();
    LayoutParams btDivLayoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f);

    Button btDivA = (Button)inflater.inflate(R.layout.button_divisao, null);
    btDivA.setText("A");
    gvDivisao.addView( btDivA, btDivLayoutParams);
于 2013-02-16T20:31:11.160 に答える
0

すべての MATCH_PARENT には、幅または高さに LayoutParams.WRAP_CONTENT が必要です (少なくとも LinearLayout の向きに従って 1 つ)。

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT
于 2012-06-30T12:06:24.480 に答える