0

私は動的レイアウトを作成するためにStackOverflowでたくさんの例を試してきました。私は少し前進しましたが、特定のバグで行き詰まりました。

このコードを親の幅に合わせるにはどうすればよいですか?

    LinearLayout masterLayout = (LinearLayout) findViewById(R.id.button_views);

        for(int i=0; i<(launchers.length/3+1); i++){
        layout[i] = new LinearLayout(getBaseContext());
        layout[i].setLayoutParams(new LinearLayout.LayoutParams(
                ViewGroup.LayoutParams.FILL_PARENT,
                ViewGroup.LayoutParams.WRAP_CONTENT));
        layout[i].setWeightSum(3);


            for(int i1=0; i1<(3); i1++){

                launchers[i1] = new Button(this);
                launchers[i1].setText(titles[i1]);
                launchers[i1].setLayoutParams(new LinearLayout.LayoutParams(
                    ViewGroup.LayoutParams.WRAP_CONTENT,
                        ViewGroup.LayoutParams.WRAP_CONTENT));
                launchers[i1].setOnClickListener(this);
                layout[i].addView(launchers[i1]);
            }
            masterLayout.addView(layout[i]);

コードはほとんど希望どおりに機能します。欠けている部分は、ボタンの幅が均一で、画面の全長にわたって等間隔に配置されていることです。

4

1 に答える 1

0

LinearLayout.LayoutParams の最後に重みのオプションがあることがわかりました。画面の幅に合わせた動的ボタン レイアウト システムの最終的なコードを次に示します。

    LinearLayout masterLayout = (LinearLayout) findViewById(R.id.button_views);

    for(int i=0; i<(launchers.length/3+1); i++){
    layout[i] = new LinearLayout(getBaseContext());
    layout[i].setLayoutParams(new LinearLayout.LayoutParams(
            ViewGroup.LayoutParams.FILL_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT));
    layout[i].setWeightSum(3);


        for(int i1=0; i1<(3); i1++){

            launchers[i1] = new Button(this);
            launchers[i1].setText(titles[i1]);
            launchers[i1].setLayoutParams(new LinearLayout.LayoutParams(
                ViewGroup.LayoutParams.FILL_PARENT,
                    ViewGroup.LayoutParams.WRAP_CONTENT, 1.0f));
            launchers[i1].setOnClickListener(this);
            layout[i].addView(launchers[i1]);
        }
        masterLayout.addView(layout[i]);

誰かがそれを試してみたい場合、ボタンを常に正方形にできるようにする方法が役立ちます...

于 2013-03-15T11:06:23.737 に答える