【问题标题】:Android Layout: How to add bottom and right border into linear layout together?Android Layout:如何将底部和右侧边框一起添加到线性布局中?
【发布时间】:2015-11-30 18:36:07
【问题描述】:

我有以下线性布局,用作表格单元格。我想将右侧和底部边框添加到选定的模板中。但现在我只能在右边添加边框。

如何一次给选定的边添加边框?

非常感谢您的建议。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="60dp"
    android:layout_height="80dp"
    android:gravity="right"
    android:background="@color/white"
    android:orientation="horizontal" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:orientation="vertical"
        android:layout_gravity="center_horizontal|center"
        android:gravity="center_horizontal|center"
        android:layout_marginRight="10dp"
        android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/variable_type_first_column"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/heart"
        android:layout_gravity="center_horizontal|center_vertical"
        android:gravity="center"/>

    <TextView
        android:id="@android:id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Weight"
        android:layout_below="@id/variable_type_first_column"
        android:layout_gravity="center_horizontal|bottom"
        android:gravity="center_horizontal|bottom"
        android:textColor="@color/app_blue"
        android:textAlignment="center"
        android:textSize="12sp"/>

    </LinearLayout>
    <View
        android:layout_width="1.5dip"
        android:layout_height="match_parent"
        android:layout_gravity="right"
        android:foregroundGravity="right"
        android:background="@drawable/separator_table_header_first" />

</LinearLayout>

【问题讨论】:

    标签: android android-layout styling border-layout


    【解决方案1】:

    在您的可绘制文件夹中创建可绘制文件。

    <?xml version="1.0" encoding="utf-8"?>
    <inset xmlns:android="http://schemas.android.com/apk/res/android"
        android:insetBottom="5dp"
        android:insetLeft="-7dp"
        android:insetRight="5dp"
        android:insetTop="-7dp">
        <shape android:shape="rectangle">
            <stroke
                android:width="5dp"
                android:color="#ff0000" />
            <solid android:color="#00000000" />
        </shape>
    </inset>
    

    并将其设置为线性布局的背景。

    【讨论】:

      【解决方案2】:

      最简单的方法是将 LinearLayout 包装在 FrameLayout 中:

      <?xml version="1.0" encoding="utf-8"?>
      <FrameLayout 
          xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="60dp"
          android:layout_height="80dp"
          android:gravity="right"
          android:background="@color/white"
          >
      
          <LinearLayout
              ...
              Your layout without the divider Views
              ...
          </LinearLayout>
      
          <View
              android:layout_width="1.5dip"
              android:layout_height="match_parent"
              android:layout_gravity="right"
              android:foregroundGravity="right"
              android:background="@drawable/separator_table_header_first" 
              />
      
          <View
              android:layout_width="match_parent"
              android:layout_height="1.5dp"
              android:layout_gravity="bottom"
              android:foregroundGravity="bottom"
              android:background="@drawable/separator_table_header_first" 
              />
      
      </FrameLayout>
      

      您可以利用RelativeLayouts 设计一个更扁平的XML,但可能更有效。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-16
        • 2012-03-01
        • 1970-01-01
        • 2013-11-05
        相关资源
        最近更新 更多