0

TextView のレイアウト パラメータをコンテンツをラップするか、親を埋めるように設定するたびにビューに表示されませんが、ピクセルに設定すると機能するのはなぜですか?

関連するコードは次のとおりです。

items = (LinearLayout) findViewById(R.id.llmain);
        tb = new TableLayout(MainActivity.this);

        tb.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        tb.setGravity(Gravity.CENTER);


            TableRow tr = new TableRow(MainActivity.this);
            ImageButton ima = new ImageButton(MainActivity.this);
            ImageButton imr = new ImageButton(MainActivity.this);
            TextView tvin = new TextView(this);

            TableRow.LayoutParams trp = new TableRow.LayoutParams();
            trp.setMargins(0, 0, 0, 10);
            tr.setLayoutParams(trp);
            tr.setGravity(Gravity.CENTER);

            ima.setBackgroundColor(Color.TRANSPARENT);
            ima.setImageResource(R.drawable.add);

            imr.setBackgroundColor(Color.TRANSPARENT);
            imr.setImageResource(R.drawable.remove);

            tvin.setWidth(100);
            tvin.setHeight(45);
            tvin.setGravity(Gravity.CENTER);
            tvin.setText(sil[i]);
            tvin.setBackgroundColor(Color.rgb(200, 0, 255));

            tr.addView(ima);
            tr.addView(tvin);
            tr.addView(imr);

            tb.addView(tr);

        items.addView(tb);

これを使ってみた

tvin.setLayoutParams(new LayoutParams(
            LayoutParams.FILL_PARENT,
            LayoutParams.WRAP_CONTENT));

この

tvin.setWidth(LayoutParams.FILL_PARENT);
tvin.setHeight(LayoutParams.FILL_PARENT);

しかし、これらのどれも機能しません。

4

3 に答える 3

4

試す:

tvin.setLayoutParams(new TableRow.LayoutParams(
            LayoutParams.MATCH_PARENT,
            LayoutParams.WRAP_CONTENT));

tvin.setWidthとheightを削除します。

ビューの親であるTableRowのレイアウトパラメータを常に設定する必要があります。この場合は。MATCH_PARENTは違いはありませんが、これは新しい名前であり、FILL_PARENTの代わりに使用する必要があります。

于 2012-10-17T08:41:17.140 に答える
1

を使用してみてくださいLinearLayout.LayoutParams

    TextView tvin = new TextView(this);
    LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    tvin.setLayoutParams(llp);
于 2012-10-17T09:40:16.063 に答える
1

この行では、高さと幅を使用する必要があります..TableRow.LayoutParams trp = new TableRow.LayoutParams();このように

TableRow row = new TableRow(context);
row.setLayoutParams(new android.widget.TableRow.LayoutParams(android.widget.TableRow.LayoutParams.FILL_PARENT,
                android.widget.TableRow.LayoutParams.WRAP_CONTENT));
于 2012-10-17T09:03:37.563 に答える