[英]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_alignTop
或layout_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.