【问题标题】:How do I add a vertical separator line between 3 displayed values?如何在 3 个显示值之间添加垂直分隔线?
【发布时间】:2013-07-09 23:08:41
【问题描述】:

我在屏幕上连续显示了 3 个值,我需要在它们之间添加 2-3 条垂直分隔线。问题是每次我在它们之间添加视图/分隔线时,它们向左或向右移动太多一些值被切断/消失。我想知道是否有办法解决它,下面是我的 xml 代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:foo="http://schemas.android.com/apk/res/com.justin.abc"
    android:layout_width="20dp"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:paddingBottom="8dp"
    android:paddingLeft="20dp"
    android:paddingTop="8dp" >

    <LinearLayout
        android:id="@+id/layout1"
        android:layout_width="2dp"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <com.justin.abc.utils.FontView
                android:id="@+id/symbol"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingRight="3dp"
                android:textColor="@color/white"
                android:textSize="12sp"
                foo:customFont="Roboto-Bold.ttf" />

            <com.justin.abc.utils.FontView
                android:id="@+id/arrow"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="14sp"
                foo:customFont="Roboto-Bold.ttf" />
        </LinearLayout>

        <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <TextView
                android:id="@+id/value1_back"
                style="@style/abc.TextView.ListsTextView.Header"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:padding="3dp"/>

            <com.justin.abc.utils.FontView
                android:id="@+id/change"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="15sp"
                foo:customFont="Roboto-Bold.ttf" />
        </FrameLayout>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/layout2"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <com.justin.abc.utils.FontView
                android:id="@+id/symbol2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingRight="3dp"
                android:textColor="@color/white"
                android:textSize="12sp"
                foo:customFont="Roboto-Bold.ttf" />

            <com.justin.abc.utils.FontView
                android:id="@+id/dashboard_markets_arrow2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="14sp"
                foo:customFont="Roboto-Bold.ttf" />
        </LinearLayout>

        <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <TextView
                android:id="@+id/value2_back"
                style="@style/abc.TextView.ListsTextView.Header"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:padding="3dp"/>

            <com.justin.abc.utils.FontView
                android:id="@+id/change2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="15sp"
                foo:customFont="Roboto-Bold.ttf" />
        </FrameLayout>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/layout3"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <com.justin.abc.utils.FontView
                android:id="@+id/dashboard_markets_symbol3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingRight="3dp"
                android:textColor="@color/white"
                android:textSize="12sp"
                foo:customFont="Roboto-Bold.ttf" />

            <com.justin.abc.utils.FontView
                android:id="@+id/dashboard_markets_arrow3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="14sp"
                foo:customFont="Roboto-Bold.ttf" />
        </LinearLayout>

        <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <TextView
                android:id="@+id/value3_back"
                style="@style/abc.TextView.ListsTextView.Header"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:padding="3dp"/>

            <com.justin.abc.utils.FontView
                android:id="@+id/change3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="15sp"
                foo:customFont="Roboto-Bold.ttf" />
        </FrameLayout>
    </LinearLayout>

</LinearLayout>

我是否需要在背景中添加一个图层或其他内容以支持相同的功能,或者我是否需要更改此结构? 谢谢! 贾斯汀

即使添加了 android:gravity="center" 我仍然看到相同的结果

【问题讨论】:

  • 你能张贴一张它现在的样子以及你希望它是什么样子的图片吗?

标签: android performance android-layout android-intent android-emulator


【解决方案1】:

正如@Gru 所说,您可以使用layout1layout2 之间的视图获得黑线 layout2layout3

正如您所指出的,这将位于 layout2layout3 内容的左边缘。为了将其分开,一个简单的解决方案是添加以下行:

android:paddingLeft="20dp"

layout1layout2layout3,同时将其从顶部LinearLayout 移除。这不会实现精确的居中,但它会为每个块的左边缘提供相同的文本,我认为这看起来是正确的。

【讨论】:

  • 我已经在编辑过的问题中添加了相同的图像,即使在添加了上面的行之后它仍然粘在左行,如图所示,是否有任何其他调整可以帮助推动它?像填充什么的?
  • 好的,知道了,我会考虑如何实现你想要的。
  • FontView 是什么的派生词,它如何设置它的宽度?
  • 它是一个自定义字体类来设置某些类型的字体
  • 谢谢!按照这一点并进行了相应的调整,paddingleft 到 30 有效,感谢您的帮助,我很感激!
【解决方案2】:

将其放在您在问题中提到的每个值之间。

<View android:layout_height="fill_parent" android:layout_width="2px" android:background="#000000"/>

应该在值之间给你一个黑条。

【讨论】:

  • 我试过了,但它只是坚持左边的值,如果我添加任何填充,它会移动值,我希望它居中,所以它可以在这些值之间等距,任何线索?
  • @Justice Bauer 对此检查 Neil Townsend 的回答,希望对您有所帮助。
猜你喜欢
  • 2018-08-15
  • 2020-05-14
  • 1970-01-01
  • 2020-06-06
  • 2019-08-29
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 2019-08-11
相关资源
最近更新 更多