将TextView垂直居中到FrameLayout的右侧

时间:2016-11-17 00:05:49

标签: android xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:id="@+id/container"
    android:background="?android:attr/selectableItemBackground"
    android:layout_height="wrap_content">
    <FrameLayout
        android:layout_width="wrap_content"
        android:id="@+id/frame"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="18dp"
        android:layout_marginBottom="10dp"
        android:layout_height="wrap_content">
        <ProgressBar
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:minHeight="5dip"
            android:minWidth="5dip"
            android:maxWidth="20dip"
            android:maxHeight="20dip"
            android:id="@+id/progress_bar"
            android:visibility="visible"/>

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <ImageView
                android:id="@+id/cover"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                />
            <TextView
                android:id="@+id/changeinscore"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="0.00"
                android:shadowColor="#000000"
                android:shadowDx="1"
                android:shadowDy="1"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:shadowRadius="7"
                android:textSize="12sp"
                android:textColor="@color/background"
                android:fontFamily="sans-serif-condensed"/>
        </RelativeLayout>

    </FrameLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/middle"
        android:layout_toRightOf="@+id/frame"
        android:layout_centerVertical="true"
        android:text="TextView"

        />

</RelativeLayout>

我想将中间TextView垂直居中到FrameLayout的右侧,因为changeinscore TextView在FrameLayout中,如果这是有道理的。目前它是偏离中心的,因为如果我理解正确的话,centerVertical将它集中在整个RelativeLayout中,而不是专门针对FrameLayout。基本上我希望中间的textview是空的,但实际上是锚定其他文本视图,所以我可以将2个文本视图略微偏离framelayout / imageview。

如果我遵循San所说的,这是结果,但不完全是我想要的 enter image description here

1 个答案:

答案 0 :(得分:1)

我终于得到了你想要的东西,这是我的样本。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:id="@+id/container"
    android:background="?android:attr/selectableItemBackground"
    android:layout_height="wrap_content">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/frame"
        android:layout_margin="10dp"
        android:gravity="center">


        <ImageView
            android:id="@+id/cover"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/im"
            />

        <TextView
            android:id="@+id/changeinscore"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="0.00"
            android:shadowColor="#000000"
            android:shadowDx="1"
            android:shadowDy="1"
            android:visibility="gone"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:shadowRadius="7"
            android:textSize="12sp"
            android:layout_margin="5dp"
            android:textColor="@color/background"
            android:fontFamily="sans-serif-condensed"/>

        <ProgressBar
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:minHeight="5dip"
            android:minWidth="5dip"
            android:maxWidth="20dip"
            android:maxHeight="20dip"
            android:layout_centerInParent="true"
            android:id="@+id/progress_bar"
            android:visibility="visible"/>

    </RelativeLayout>


    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_centerHorizontal="true"
        android:layout_alignTop="@+id/frame"
        android:layout_alignBottom="@+id/frame"
        android:layout_toRightOf="@id/frame"
        android:gravity="center"
        android:weightSum="3"
        android:orientation="vertical">


        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Aldnoah.Zero"
            android:layout_weight="1"
            android:ellipsize="end"
            android:maxLines="1"
            android:paddingLeft="5dp"
            android:gravity="bottom"
            android:fontFamily="sans-serif-slab"
            android:textSize="16sp"
            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:id="@+id/middle"
            android:text="TextView"
            android:layout_weight="1"
            android:paddingLeft="5dp"
            android:textSize="14sp"
            />

        <TextView
            android:id="@+id/score"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Bottom Text"
            android:paddingLeft="5dp"
            android:textSize="14sp"
            android:gravity="top"
            android:fontFamily="sans-serif-condensed"/>

    </LinearLayout>



</RelativeLayout>

布局看起来像this