Como ter um escalável largura com base na largura da tela para um modo de exibição no android em relação Layout
-
21-12-2019 - |
Pergunta
No Layout para uma atividade do meu aplicativo Android, eu preciso ter uma linha com um texto alinhado no lado direito dele, como abaixo:
E este é o meu XML até o momento:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<View
android:id="@+id/line"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_centerVertical="true"
android:background="@android:color/darker_gray"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" Text "
android:layout_alignRight="@id/line"/>
</RelativeLayout>
Basicamente, o problema é que a largura da linha é alterada de acordo com a largura da tela e a largura do texto.Ele deve ser a largura da tela menos a largura do texto.
No meu arquivo XML, a largura da linha é igual à largura da tela e o texto sobreposições de linha, alinhado à direita.O que não é o que eu queria.Uma ideia é tornar o plano de fundo do meu texto equivalente para o plano de fundo da atividade.No entanto, eu não tenho certeza se essa é a melhor idéia.
Eu estou querendo saber se há alguma outra maneira de abordar esses problemas no Android design.
Solução
você pode criar uma layout_weight
e moldar seu ponto de vista e textView
dentro de um linearlayout
para habilitar a usar o peso do atributo
exemplo:
<?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="wrap_content"
android:orientation="horizontal" >
<View
android:layout_width="0dp"
android:layout_weight="3"
android:layout_height="3dp"
android:layout_gravity="center_vertical"
android:background="@android:color/darker_gray" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" Text " />
</LinearLayout>
Outras dicas
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text=" Text " />
<View
android:id="@+id/line"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/textView1"
android:background="@android:color/darker_gray" />