控制LinearLayout的边框和背景颜色

时间:2019-06-05 21:13:21

标签: c# android xamarin.android

我有问题。我创建了一个这样的LinearLayout:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:id="@+id/LayoutProfit"
    android:layout_width="0dp"
    android:layout_weight="20"
    android:layout_height="27dp"
    android:minWidth="0px"
    android:minHeight="50px"
    android:background="@drawable/list_divider_full">

现在,我要控制背景色和边框。我使用此行来控制背景色:

LayoutProfit.SetBackgroundColor(Color.ParseColor("#FFFFFF"));

和这条线来控制边框:

LayoutProfit.SetBackgroundResource(Resource.Drawable.list_divider_top_sides);

但是看起来还是颜色或边框。如何控制它们,以便它们都可见?

2 个答案:

答案 0 :(得分:0)

调用LayoutProfit.SetBackgroundResource(Resource.Drawable.list_divider_top_sides);时,它将覆盖您的LinearLayout背景("@drawable/list_divider_full"),这就是为什么您失去设置的颜色的原因。

我建议使用android:background =“ @ drawable / list_divider_top_sides将LayoutProfit放在框架布局中。 确保添加list_divider_top_sides中定义的边框大小的填充。

答案 1 :(得分:0)

如果要控制LinearLayout的边框和背景颜色,建议您使用一个xml设置它们。在drawable中创建border.xml。

<?xml version="1.0" encoding="utf-8" ?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

 <!-- border color -->
 <item>
<shape>
  <solid android:color="#00FF00" />
</shape>

<!-- background color -->
<item android:bottom="4dp" android:right="4dp" android:left="4dp"
      android:top="4dp">
<shape>
  <solid android:color="#ff3235" />
</shape>
</item>
</layer-list>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/LayoutProfit"
android:layout_width="match_parent"
android:layout_weight="20"
android:layout_height="match_parent" 
android:background="@drawable/border"       
>