【问题标题】:I want to create a layout with background with two different parts upper part will have different background color and bottom part will have different我想创建一个带有两个不同部分的背景布局,上部将有不同的背景颜色,底部将有不同的
【发布时间】:2020-02-20 14:08:10
【问题描述】:

外视图也应该有圆角。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#ffffff"></solid>
    <corners android:radius="10dp" />
    <stroke
        android:width="@dimen/dimen_1"
        android:color="#1877ee" />
</shape>

【问题讨论】:

    标签: android android-layout android-view xml-drawable


    【解决方案1】:
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:orientation="vertical"
       android:background="@drawable/round_corners"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:weightSum="2"> 
    
        <LinearLayout
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:layout_weight="1"
          android:orientation="vertical"
          android:background="@color/upper_one"> //code for layout for adjusting height </LinearLayout>
    
       <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_weight="1"
         android:orientation="vertical"
         android:background="@color/lower_color"> //code for layout for adjusting height</LinearLayout>
    </LinearLayout>
    

    您可以固定高度或使用包装内容到高度并调整线性布局内的视图高度

    【讨论】:

      【解决方案2】:

      为什么不直接使用一个布局而不是另一个布局?

      例如,一个父线性布局整体和两个具有相同权重和不同背景的子线性布局:

      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:weightSum="2"> 
      
      <LinearLayout
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:layout_weight="1"
          android:orientation="vertical"
          android:background="#FFEB3B">
      </LinearLayout>
      
      <LinearLayout
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:layout_weight="1"
          android:orientation="vertical"
          android:background="#CC2323">
      </LinearLayout>
      
      </LinearLayout>
      

      【讨论】:

      【解决方案3】:

      也许你可以使用自定义drawable:

      使用以下代码制作新的可绘制对象 (border_up.xml):

      <corners android:topLeftRadius="10dp"
          android:topRightRadius="10dp"
          android:bottomLeftRadius="0dp"
          android:bottomRightRadius="0dp" />
      <solid
          android:color="@color/colorPrimary"/>
      

      还有border_down.xml:

      <corners android:topLeftRadius="0dp"
          android:topRightRadius="0dp"
          android:bottomLeftRadius="10dp"
          android:bottomRightRadius="10dp" />
      <solid
          android:color="@color/colorAccent"/>
      

      在您的布局中,使用上述可绘制的线性布局或文本视图:

      <LinearLayout
          android:weightSum="2"
          android:orientation="vertical"
          android:layout_width="120dp"
          android:layout_height="200dp"
          android:layout_marginTop="50dp"
          app:layout_constraintEnd_toEndOf="parent"
          app:layout_constraintStart_toStartOf="parent"
          app:layout_constraintTop_toBottomOf="@+id/textView" >
      
          <TextView
              android:id="@+id/textView2"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:layout_weight="1"
              android:textColor="@color/colorWhite"
              android:gravity="center_horizontal|center_vertical"
              android:background="@drawable/border_up"
              android:text="TextView" />
      
          <TextView
              android:id="@+id/textView3"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:textColor="@color/colorWhite"
              android:gravity="center_horizontal|center_vertical"
              android:background="@drawable/border_down"
              android:layout_weight="1"
              android:text="TextView" />
      </LinearLayout>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-09-09
        • 2019-11-12
        • 1970-01-01
        • 1970-01-01
        • 2012-12-28
        • 2010-11-19
        • 2023-03-30
        相关资源
        最近更新 更多