1

左右に1つずつ必要です。すべての構成はコードで行う必要があります。スクリーンショット:

ここに画像の説明を入力してください

コード:

    super.onCreate(savedInstanceState);
    setContentView(R.layout.overview);
    loadData();
    TableLayout tl = (TableLayout)findViewById(R.id.tl);
    TableRow tr = new TableRow(this);
    TableRow tr2 = new TableRow(this);
    tr.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
    //tr2.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
    //tr2.setLayoutParams(new ViewGroup.LayoutParams(L., LayoutParams.WRAP_CONTENT));
    TextView tv = new TextView(this);
    TextView tv2 = new TextView(this);
    //tv.se
    tv.setGravity(Gravity.LEFT);
    tv2.setGravity(Gravity.RIGHT);
    tv.setText("Test");
    tv2.setText("Test");
    //tv.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1f));
    //tv.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f));
    tv2.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1f));
    //tv.setTextSize(50);
    //tv2.setTextSize(50);
    tr.addView(tv);
    tr.addView(tv2);
    //tl.addView(tr);
    //setContentView(tl);
    tl.addView(tr, new TableLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT));
    }

レイアウト:

<TableLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:id="@+id/tl"
  android:stretchColumns="*">
</TableLayout>
4

2 に答える 2

2

LayoutParams は、ビューがどのようにレイアウトされるかを親に伝えるためにビューによって使用されます。Android で定義されている約 13 種類の LayoutParams があります。例えば。LinearLayout.Layoutparams、ViewGroup.LayoutParams、ActionBar.LayoutParams など。

したがって、TextView を LinearLayout に追加する場合、LinearLayout が TextView の親であることを意味するため、textView のレイアウト パラメータを定義するときは、ViewGroup.LayoutParams ではなく LinearLayout.LayoutParams を使用する必要があります。

あなたの場合、テーブル行に2つのテキストビューを追加しているので、明らかにTableRow.LayoutParamsを使用する必要があります

したがって、この行を置き換えます

tv2.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1f)); 

tv2.setLayoutParams(new TableRow.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1f)); 

テレビについても同様に書く これは、このサイトでの最初の投稿でした。それが役立つことを願っています:)

于 2011-10-04T09:29:53.000 に答える
0

私はあなたが使用しなければならないと思います:

  android:stretchColumns="0,1"

素晴らしい例はここにあります

これを行う:

tv2layoutparamsから1fを削除します。

tl.addView(tr、new TableLayout.LayoutParams(LayoutParams.FILL_PARENT、LayoutParams.WRAP_CONTENT));

これにより、指定されたリンクに従って問題が解決する場合があります。

于 2011-10-04T06:54:44.183 に答える