Android 视图忽略布局的形状

Android 视图忽略布局的形状,android,android-layout,Android,Android Layout,我有一个线性布局和一些内部视图 线性布局具有以下可绘制的背景: <?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=

我有一个线性布局和一些内部视图

线性布局具有以下可绘制的背景:

<?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相同的大小。这个布局上不应该有什么东西

我该怎么办?我不想将相同的背景、可绘制的形状应用于我的视图。。。我想这不是我应该做的

干杯

布局:

 <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);
}

使用填充或边距将视图按需要放置在线性布局中。

发布布局代码。嘿,抱歉,这不是我想要的。我的视图的背景应该适合布局。如果布局有圆角,“我的布局”的视图也应该有圆角…那么您也需要将圆角应用于线性布局内的每个视图。LinearLayout的背景与放置在其中的子视图的背景无关。这两个是独立的,但这真的很复杂。。。我必须检查视图是在侧面还是在网格的中间…因为只有每行的第一个和最后一个元素受影响。。。如果我改变布局的可绘制性,我必须改变子元素的布局。。。这看起来不正确…此外,我正在设置布局中视图背景颜色的动画。。。我确实需要裁剪视图,使其适合布局:不幸的是,您需要以不同于其他视图的方式处理线性布局中的子视图的左上角、右上角、左下角和右下角布局。要么这样,要么垫上线性布局,这样子视图都可以适当地放在里面,这样线性布局的圆角就不会受到影响。你的选择。但是没有更简单的选择,孩子们可以看到背景,自动绘制成他们父母的形状。至少据我所知,没有这样的规定。