我正在创建一个设置屏幕,一个带有TableLayout的ScrollView。我不希望我的设置TableRows出现压扁,所以我设置每个8dp边距。但是,这意味着内部的内容似乎流血(特别是在右侧)。
似乎表格行的宽度不排除其自己的边距宽度,这会在尝试fill_parent为自己的宽度时弄乱其内容的宽度。我该如何解决这个问题?
图片示例 - 请参阅右侧的复选框:
我的布局XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/settings">
<ScrollView
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="0">
<TableRow android:layout_margin="@dimen/row_padding">
<TextView
android:text="Settings"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge"/>
</TableRow>
<TableRow android:layout_margin="0dp">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="@dimen/row_height">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="No margin"
android:id="@+id/textView" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Explanation"
android:id="@+id/textView2" />
</LinearLayout>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/checkBox"
android:layout_gravity="center" />
</TableRow>
<TableRow android:layout_margin="@dimen/row_padding">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="8dp margin"
android:id="@+id/textView3" />
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/checkBox2"
android:layout_column="1"
android:checked="false" />
</TableRow>
</TableLayout>
</ScrollView>
</LinearLayout>
答案 0 :(得分:0)
不是将保证金直接放在TableRow
标签上,而是可以在内容上添加边距,即表格单元格,
我修改了你的代码。请看看。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/settings">
<ScrollView
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="0">
<TableRow >
<TextView
android:text="Settings"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge"/>
</TableRow>
<TableRow android:layout_margin="0dp">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="No margin"
android:id="@+id/textView" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Explanation"
android:id="@+id/textView2" />
</LinearLayout>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/checkBox"
android:layout_gravity="center" />
</TableRow>
<TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="8dp margin"
android:layout_margin="8dip"
android:id="@+id/textView3" />
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/checkBox2"
android:layout_margin="8dip"
android:layout_column="1"
android:checked="false" />
</TableRow>
</TableLayout>
</ScrollView>
希望它会对你有帮助!