我内部有一个LinearLayout
和一些Views
。
LinearLayout
具有以下背景可绘制:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape
android:shape="rectangle">
<solid android:color="#25000000" />
<corners android:radius="5dp"/>
</shape>
</item>
<item android:right="1dp" android:left="1dp" android:bottom="2dp">
<shape
android:shape="rectangle">
<solid android:color="@android:color/white"/>
<corners android:radius="5dp"/>
</shape>
</item>
所以我的布局有一些圆角。
现在我想在我的LinearLayout中设置我的视图的背景颜色,这就是问题所在: 背景不在形状内......它忽略了我的LinearLayout角落的半径。视图应该与LinearLayout具有相同的大小。这个布局不应该有“超过”的东西。
我该如何管理?我不想在我的视图中应用相同的背景绘制(相同的形状)......我认为这不是我应该这样做的方式......
干杯
布局:
<TableLayout
android:id="@+id/table_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="*">
</TableLayout>
我以编程方式添加视图(它们属于片段):
FragmentTransaction transaction = getChildFragmentManager()
.beginTransaction();
for (int i = 0; i < answers.size(); i++) {
TableRow row = tableRows.get(i % tableRows.size());
AnswerFragment fragment = answers.get(i).getViewFragment();
answerFragments.add(fragment);
transaction.add(row.getId(), fragment);
}
transaction.commit();
其中tableRows由:
创建int rows = (int) Math.ceil(Math.sqrt(answers.size())); // n x n
for (int i = 0; i < rows; i++) {
TableRow row = new TableRow(getActivity());
row.setId(1337 + i);
row.setLayoutParams(new TableLayout.LayoutParams(
TableLayout.LayoutParams.MATCH_PARENT,
TableLayout.LayoutParams.MATCH_PARENT, 1.0f));
row.setGravity(Gravity.CENTER);
tableRows.add(row);
tableLayout.addView(row);
}
答案 0 :(得分:0)
使用填充或边距将您的View放置在LinearLayout中,就像您需要的那样。