Android“RelativeLayout”/“Linear Layout”上的“添加垂直线”

时间:2013-09-14 00:58:12

标签: android android-layout android-linearlayout relativelayout

我已经阅读了有关在Android中添加垂直线的其他问题,这是我的问题

  1. 我能够在我的主RelativeLayout下添加一条垂直线作为“视图”,但是在子RelativeLayout中无法做到。
  2. 垂直线的代码

    <View
    android:id="@+id/verticalSeperatorHours"
    android:layout_width="1dip"
    android:layout_height="match_parent"
    android:background="@color/medium_dark_gray" 
    />
    

    水平线的代码:

    <LinearLayout
                android:id="@+id/currentTimeMarkerLinearLayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="0dp"
                android:layout_marginTop="100dp"
                android:baselineAligned="false"
                android:orientation="horizontal"
                android:padding="0dp" >
    
                <View
                    android:layout_width="0dp"
                    android:layout_height="3dp"
                    android:layout_weight="1" />
    
                <View
                    android:id="@+id/currentTimeLineView"
                    android:layout_width="0dp"
                    android:layout_height="1dp"
                    android:layout_weight="14"
                    android:background="@color/strong_blue" />
            </LinearLayout>
    

    我的结构xml:

    • RelativeLayout
      • 的LinearLayout
      • 滚动型
        • RelativeLayout的
          • RelativeLayout的
          • “添加垂直线不起作用”
          • “添加水平线有效”
    • LinearLayout
    • 在此处添加垂直线有效但不是我想要的“

    没有出现水平线的LinearLayout之后的“View”。我意识到我不深入了解android布局的结构,所以有人可以向我解释它是如何工作的。

    完整布局:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:arm="http://schemas.android.com/apk/res/edu.cmu.sv.arm"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="0dp" >
    
    <LinearLayout ...
    
    
    <View
        android:id="@+id/dividerView"
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:layout_below="@+id/dayLabelsLinearLayout"
        android:background="@color/medium_gray" />
    
    <ScrollView
        android:id="@+id/calendarScrollView"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/dividerView"
        android:layout_alignParentBottom="true"
        android:overScrollMode="never"
        android:padding="0dp"
        android:scrollbars="none"
        android:fadingEdge="none" >
    
        <RelativeLayout
            android:id="@+id/calendarRelativeLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="0dp" >
    
            <LinearLayout ...
    
    
            <LinearLayout
                android:id="@+id/currentTimeMarkerLinearLayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="0dp"
                android:layout_marginTop="100dp"
                android:baselineAligned="false"
                android:orientation="horizontal"
                android:padding="0dp" >
    
                <View
                    android:layout_width="0dp"
                    android:layout_height="3dp"
                    android:layout_weight="1" />
    
                <View
                    android:id="@+id/currentTimeLineView"
                    android:layout_width="0dp"
                    android:layout_height="1dp"
                    android:layout_weight="14"
                    android:background="@color/strong_blue" />
            </LinearLayout>
            <View
                    android:id="@+id/verticalSeperatorHours"
                    android:layout_width="1dip"
                    android:layout_height="match_parent"
                    android:layout_marginLeft="100dp"
                    android:background="@color/medium_dark_gray" />
        </RelativeLayout>
    </ScrollView>
    
    
    
    <LinearLayout ...
    
    <View ...
    
    </RelativeLayout>
    

3 个答案:

答案 0 :(得分:5)

使用View后,您应该完成LinearLayout。

我在我的XML文件中使用了以下代码,并且它有效。

它也适合你。

<LinearLayout
     android:layout_width="fill_parent"
     android:layout_height="1dp"
     android:paddingLeft="5dip"
     android:paddingRight="5dip">
<View 
    android:id="@+id/view"
    android:layout_toRightOf="@+id/text1"
    android:layout_width="1dip"
    android:layout_height="fill_parent"
    android:background="#FF0000FF"/>
 </LinearLayout>

答案 1 :(得分:0)

我使用形状设置垂直和水平线。

  <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:background="@drawable/drawable_profile_week_back"
        android:gravity="right"
        android:paddingLeft="1dip"
        android:paddingRight="1dip"
        android:orientation="vertical"
        android:minHeight="60dp"
        android:layout_height="60dp"   >



    </LinearLayout>

drawable =&gt; drawable_profile_week_back

sion="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:bottom="-10dp"
        android:left="0dp"
        android:right="0dp"
        android:top="0dp">
        <shape android:shape="rectangle" >
            <stroke
                android:width="1dp"
                android:color="#a6a6a6" />
        </shape>
    </item>

    <item
        android:bottom="-10dp"
        android:left="60dp"
        android:right="-10dp"
        android:top="-10dp">
        <shape android:shape="rectangle" >
            <stroke
                android:width="1dp"
                android:color="#a6a6a6" />
        </shape>
    </item>

    <item
        android:bottom="-10dp"
        android:left="60dp"
        android:right="-10dp"
        android:top="14dp">
        <shape android:shape="rectangle" >
            <stroke
                android:width="1dp"
                android:color="#a6a6a6" />
        </shape>
    </item>

    <item
        android:bottom="-10dp"
        android:left="60dp"
        android:right="-10dp"
        android:top="29dp">
        <shape android:shape="rectangle" >
            <stroke
                android:width="1dp"
                android:color="#a6a6a6" />
        </shape>
    </item>

    <item
        android:bottom="-10dp"
        android:left="60dp"
        android:right="-10dp"
        android:top="44dp">
        <shape android:shape="rectangle" >
            <stroke
                android:width="1dp"
                android:color="#a6a6a6" />
        </shape>
    </item>

</layer-list>

答案 2 :(得分:0)

尝试使用此代码进行垂直线

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="2dp"
    android:layout_marginTop="100dp"
    android:background="#000000" />

</LinearLayout>

enter image description here

<TextView
    android:layout_width="fill_parent"
    android:layout_height="2dp"
    android:layout_marginTop="100dp"
    android:background="#000000" />