视图忽略布局的形状

时间:2013-12-10 12:40:22

标签: android android-layout

我内部有一个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);
}

1 个答案:

答案 0 :(得分:0)

使用填充或边距将您的View放置在LinearLayout中,就像您需要的那样。

相关问题