1
.xmlファイルで定義されたテーブルがありますが、行とヘッダーを動的に追加する必要があります。私は横と縦の向きでテーブルの行を塗りつぶしに問題があります。私はstretchColumnsパラメータを試しましたが、それは助けにはなりませんでした。それを行う最善の方法は何ですか?AndroidでTableRowの幅をmaxに設定する方法は?
table = (TableLayout) findViewById(R.id.testList);
TableRow headerRow = new TableRow(this);
JSONObject obj;
obj = new JSONObject(loadJSONFromAsset());
JSONArray records = obj.getJSONArray("tests");
ArrayList<String> headers = new ArrayList<>();
headers.add("Header 1");
headers.add("Header 2");
headers.add("Header 3");
headers.add("Header 4");
headers.add("Header 5");
for(int i = 0; i < headers.size(); i++) {
TextView header = new TextView(this);
header.setText(headers.get(i));
header.setTextColor(Color.WHITE);
header.setBackgroundColor(Color.rgb(24, 116, 205));
header.setPadding(15, 15, 15, 15);
header.setTextSize(20);
header.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
header.setMaxLines(1);
headerRow.addView(header);
}
table.addView(headerRow);
とxml
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="wrap_content">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<HorizontalScrollView
android:layout_height="wrap_content"
android:layout_width="match_parent">
<TableLayout
android:id="@+id/testList"
android:layout_height="match_parent"
android:layout_width="wrap_content">
</TableLayout>
</HorizontalScrollView>
</ScrollView>
</LinearLayout>
</GridLayout>
テーブルがスクロールビュー内にあるため、幅と高さの制限はありません。したがって、* max *幅である決定する方法はありません。あなたは手動で設定することができます –
@VladMatvienkoどのようにスクロールビューなしでそれを行うには? – Sheppard25
私はあなたがscrollViewなしでそれをする必要があると言っていませんでした。あなたはあなたのために* max *の幅を決める必要があります。 100dpのような正確な値ですか、それとも画面の幅ですか、それとも何ですか? –