2

同じ量のスペースを共有して並べEditTextsて収まるようにすることはできません。LinearLayout

これを行うコードは次のとおりです。

LinearLayout.LayoutParams lparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textFieldsLayout = (LinearLayout) findViewById(R.id.LinearLayout2);

        for(int i=1; i <= 8; i++){

            final EditText ed = new EditText(this);

            ed.setText("" + i);

            ed.setInputType(2);

            ed.setLayoutParams(lparams);

            textFieldsLayout.addView(ed);
        }   
    }

このコードはなんとかEditText私のレイアウトに追加できますが、それらは並んで表示され、の最後に空のスペースがありLinearLayoutます。params を に変更するとWRAP_CONTENT、最初EditTextにレイアウトに追加されただけでレイアウトが塗りつぶされ、他のコードはそこに表示されません。私はここで間違っていますか?

4

2 に答える 2

2

レイアウト パラメータに layout_weight を追加します

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams
                       (LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, 1f);
于 2012-08-01T16:30:07.727 に答える
0

ビューを伸縮して LinearLayout を埋めるには、幅が 0 に設定され、重みが 1 に設定されていることを確認する必要があります。

これにより、均等に分割されます。基本的には、親が測定されるまで幅の設定を延期するようにシステムに指示しています。それから子供たちに来て、空いているスペースを埋めさせます。

于 2012-08-01T16:26:48.433 に答える