Android水平对齐两个分隔线之间的TextView

时间:2014-07-06 09:33:41

标签: android android-layout

这是我想要实现的目标:

以下是我尝试的方式:

            <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/padd_loading_btn"
            android:layout_marginBottom="@dimen/padd_loading_btn" >

            <View
                android:layout_width="65dp"
                android:layout_height="1dp"
                android:layout_gravity="center_vertical"
                android:background="@android:color/darker_gray" />

            <TextView
                android:id="@+id/orLoginWithEmail"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_weight="1"
                android:gravity="center_vertical"
                android:text="@string/orlogin_withEmail"
                android:textSize="12sp" />

            <View
                android:layout_width="65dp"
                android:layout_height="1dp"
                android:layout_gravity="center_vertical"
                android:background="@android:color/darker_gray" />
        </LinearLayout>

这对于我的高清显示器看起来不错,但对于其他人看起来很糟糕。

如何根据需要进行文本换行,然后将分隔线对齐?

P.S。当然我可以设置一个相对布局和内部设置一个分隔符来填充宽度,textview上面带有填充的白色背景,但我不认为这是最好的解决方案。

3 个答案:

答案 0 :(得分:3)

试试这个

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="@dimen/padd_loading_btn"
    android:layout_marginBottom="@dimen/padd_loading_btn" >

    <View
        android:layout_width="0dp"
        android:layout_height="1dp"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:background="@android:color/darker_gray" />

    <TextView
        android:id="@+id/orLoginWithEmail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:gravity="center_vertical"
        android:text="@string/orlogin_withEmail"
        android:textSize="12sp" />

    <View
        android:layout_width="0dp"
        android:layout_height="1dp"
        android:layout_weight="1"
        android:layout_gravity="center_vertical"
        android:background="@android:color/darker_gray" />
</LinearLayout>

答案 1 :(得分:1)

您可以尝试使用以下代码,您可以更改TextViews以进行查看。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <TextView android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="0.1"
                android:background="#cccccc" />

    <TextView android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="0.8"
                android:gravity="center_horizontal"
                android:background="#ffffff"
                android:text="Hello Android" />


    <TextView android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="0.1"
                android:background="#cccccc" />

</LinearLayout>

这是输出

Image

答案 2 :(得分:0)

尝试使用FrameLayout,记得将后视图的宽度设置为&#34; match_parent&#34;和TextView的背景为null或white,并给你的TextView paddingLeft和paddingRight来达到你想要的效果

<FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/padd_loading_btn"
        android:layout_marginBottom="@dimen/padd_loading_btn" >

        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_gravity="center_vertical"
            android:background="@android:color/darker_gray" />

        <TextView
            android:id="@+id/orLoginWithEmail"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:paddingLeft="5dp"
            android:paddingRight="5dp"
            android:layout_gravity="center"
            android:background="@android:color/white"
            android:text="@string/orlogin_withEmail"
            android:textSize="12sp" />

    </FrameLayout>