2つのTableLayoutが隣り合っています。それらは同様の情報を表示するため、対応する行は互いに隣接している必要があります。つまり、左側のテーブルの3行目は、右側のテーブルの3行目と水平に並べる必要があります。(私は2つのテーブルを使用しているので、それらの間の垂直線と、コードをより整理する他の理由を取得できます。)開始したとき、両方のテーブルはTableRows内のTextViewを使用してデータを表示し、すべてがうまく並んでいました。 。ここで、右側のテーブルでTableRows内のセルの横にチェックマークを付けて、セルが完了したことを示す必要があるため、右側のテーブルで、TextViewsからCheckedTextViewsに切り替えました。これは、間に空白がたくさんあることを除けば、非常にうまく機能します。まだTextViewsを使用している左側のテーブルよりも行。私'
CheckedTextViewsに適用しているスタイルは次のとおりです。
<style name="Check" >
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:gravity">center_vertical|left</item>
<item name="android:drawablePadding">0dp</item>
<item name="android:padding">0dp</item>
<item name="android:checkMark">?android:attr/listChoiceIndicatorMultiple</item>
</style>
これが私のTableLayoutのサンプル行です。
<TableRow>
<CheckedTextView
android:id="@+id/j_elective_01"
style="@style/Check"/>
<CheckedTextView
android:id="@+id/j_elective_02"
style="@style/Check"/>
</TableRow>
チェックボックスに使用されているアイコンに多くの空白が組み込まれている可能性を検討しました。...platforms/android-12 / data / res /drawable-hdpi/のcheckbox_on_background.pngとcheckbox_off_background.pngを確認しました。そうではないようです。
画面スペースを無駄にしたくないので、左側のテーブルエントリにパディングを追加して並べるのは避けたいです。右のテーブルの行の間のスペースの一部を取り除く方法を見つけたいだけです。