簡體   English   中英

在相對布局上將形狀對齊到文本視圖的中心

[英]Align shape to center of textview on Relative layout

我需要在RelativeLayout中將圓形形狀居中到Textview的中心,我已經嘗試過使用android:gravity但是無法正常工作。

這是我正在使用的實際布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/swipeLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="8dp">

            <ImageView
                android:id="@+id/rvSincronizado"
                android:layout_width="10dp"
                android:layout_height="10dp"
                android:gravity="center_vertical"
                android:layout_marginLeft="5dp"
                android:background="@drawable/circle" />

            <TextView
                android:id="@+id/rvDescripcion"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:layout_toRightOf="@id/rvSincronizado"
                android:text=""
                android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                android:textColor="#000000" />

            <TextView
                android:id="@+id/rvetMarca"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/rvDescripcion"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="5dp"
                android:text="@string/rvetMarca"
                android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                />

            <TextView
                android:id="@+id/rvMarca"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/rvDescripcion"
                android:layout_toRightOf="@+id/rvetMarca"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="5dp"
                android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                />

            <TextView
                android:id="@+id/rvetModelo"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/rvDescripcion"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="5dp"
                android:text="@string/rvetModelo"
                android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                android:layout_toRightOf="@id/rvMarca"/>

            <TextView
                android:id="@+id/rvModelo"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/rvDescripcion"
                android:layout_toRightOf="@+id/rvetModelo"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="5dp"
                android:textAppearance="@style/Base.TextAppearance.AppCompat.Small" />

            <TextView
                android:id="@+id/rvetSerie"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/rvetMarca"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="5dp"
                android:text="@string/rvetSerie"
                android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                />

            <TextView
                android:id="@+id/rvSerie"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@id/rvetModelo"
                android:layout_toRightOf="@+id/rvetSerie"
                android:layout_marginLeft="5dp"
                android:layout_marginTop="5dp"
                android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                />
        </RelativeLayout>
</LinearLayout>

這是目前的樣子

謝謝您的幫助!!

您無法使用RelativeLayout完成您要執行的操作。 它僅允許您指定一個垂直對齊規則(例如layout_alignToplayout_alignBottom ),並且沒有“ alignCenterVertically”或類似內容。

您可以改用ConstraintLayout ,它確實允許您為垂直對齊指定多個約束。 您必須將所有android:layout_below屬性轉換為app:layout_constraintTop_toBottomOf ,並且必須將所有android:layout_toRightOf屬性轉換為app:layout_constraintLeft_toRightOf ,但轉換總體上非常簡單。 完成此操作后,可以將以下兩個約束添加到圓的ImageView中:

app:layout_constraintTop_toTopOf="@+id/rvDescripcion"
app:layout_constraintBottom_toBottomOf="@+id/rvDescripcion"

整個過程如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/swipeLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="8dp">

        <ImageView
            android:id="@+id/rvSincronizado"
            android:layout_width="10dp"
            android:layout_height="10dp"
            android:layout_marginLeft="5dp"
            android:gravity="center_vertical"
            android:background="@drawable/circle"
            app:layout_constraintTop_toTopOf="@+id/rvDescripcion"
            app:layout_constraintBottom_toBottomOf="@+id/rvDescripcion"/>

        <TextView
            android:id="@+id/rvDescripcion"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:textColor="#000000"
            android:text="PRENSA"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
            app:layout_constraintLeft_toRightOf="@id/rvSincronizado"/>

        <TextView
            android:id="@+id/rvetMarca"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginLeft="5dp"
            android:text="@string/rvetMarca"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
            app:layout_constraintTop_toBottomOf="@id/rvDescripcion"/>

        <TextView
            android:id="@+id/rvMarca"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginLeft="5dp"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
            app:layout_constraintTop_toBottomOf="@id/rvDescripcion"
            app:layout_constraintLeft_toRightOf="@+id/rvetMarca"/>

        <TextView
            android:id="@+id/rvetModelo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginLeft="5dp"
            android:text="@string/rvetModelo"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
            app:layout_constraintTop_toBottomOf="@id/rvDescripcion"
            app:layout_constraintLeft_toRightOf="@id/rvMarca"/>

        <TextView
            android:id="@+id/rvModelo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginLeft="5dp"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
            app:layout_constraintTop_toBottomOf="@id/rvDescripcion"
            app:layout_constraintLeft_toRightOf="@+id/rvetModelo"/>

        <TextView
            android:id="@+id/rvetSerie"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginLeft="5dp"
            android:text="@string/rvetSerie"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
            app:layout_constraintTop_toBottomOf="@id/rvetMarca"/>

        <TextView
            android:id="@+id/rvSerie"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="5dp"
            android:layout_marginLeft="5dp"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
            app:layout_constraintTop_toBottomOf="@id/rvetModelo"
            app:layout_constraintLeft_toRightOf="@+id/rvetSerie"/>

    </android.support.constraint.ConstraintLayout>

</LinearLayout>

您可以將它們放在linearLayout中,並稍作調整:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/swipeLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="8dp">


        <LinearLayout
            android:id="@+id/lnDescripcion"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/rvSincronizado"
                android:layout_width="10dp"
                android:layout_height="10dp"
                android:layout_marginTop="2dp"
                android:layout_toEndOf="@+id/rvDescripcion"
                android:layout_toRightOf="@+id/rvDescripcion"
                android:background="@android:drawable/presence_away"
                android:scaleType="centerInside" />

            <TextView
                android:id="@+id/rvDescripcion"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_alignParentTop="true"
                android:text="werwerwerwerwerwerwer"
                android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
                android:textColor="#000000" />
        </LinearLayout>


        <TextView
            android:id="@+id/rvetMarca"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/lnDescripcion"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:text="sdfsdfsdf"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Small" />

        <TextView
            android:id="@+id/rvMarca"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/lnDescripcion"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:layout_toRightOf="@+id/rvetMarca"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Small" />

        <TextView
            android:id="@+id/rvetModelo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/lnDescripcion"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:layout_toRightOf="@id/rvMarca"
            android:text="sdfsdfsdf"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Small" />

        <TextView
            android:id="@+id/rvModelo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/lnDescripcion"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:layout_toRightOf="@+id/rvetModelo"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Small" />

        <TextView
            android:id="@+id/rvetSerie"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/rvetMarca"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:text="sdfsdfsdf"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Small" />

<TextView
            android:id="@+id/rvSerie"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/rvetModelo"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:layout_toRightOf="@+id/rvetSerie"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Small" />
    </RelativeLayout>
</LinearLayout>

像這樣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM