mcavalon
@mcavalon
Девелопер

Вопрос по android верстке?

Как избежать такое (выделил красным):

14519bba79fdc37b24c2739717b5f046.png


Файл row.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

	<ImageView
			android:id="@+id/istar"
			android:layout_width="30dp"
			android:layout_height="30dp"
			android:paddingLeft="10dp" 
			android:layout_centerVertical="true"
			android:scaleType="fitCenter"
			android:src="@drawable/star" />
    
    <TextView
            android:id="@+id/imain"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="20dp"
            android:layout_toRightOf="@id/istar"
            android:text="TextView"
            android:layout_gravity="center_vertical|left">
    </TextView>
    
    <TextView
            android:id="@+id/iname"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="20dp"
            android:layout_toRightOf="@id/imain"
            android:text="TextView"
            android:layout_gravity="center_vertical|left"
            android:textSize="20sp">
    </TextView>
    
    <TextView
            android:id="@+id/icurrency"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="5dp"
            android:paddingTop="20dp"
            android:paddingBottom="20dp"
            android:paddingRight="20dp"
            android:text="TextView"
            android:layout_alignParentRight="true" 
            android:textSize="20sp">
    </TextView>
    
    <TextView
            android:id="@+id/ibalance"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="20dp"
            android:paddingTop="20dp"
            android:paddingBottom="20dp"
            android:paddingRight="5dp"
            android:text="TextView"
            android:layout_toLeftOf="@id/icurrency"
            android:textSize="20sp">
    </TextView>
    
</RelativeLayout>



Заранее спасибо!
  • Вопрос задан
  • 4503 просмотра
Решения вопроса 1
AgentSIB
@AgentSIB
Используйте LinearLayout, у элементов width fill_parent. Ширину регулируйте weight (Я не ошибся, вес), maxwidth, minwidth. Должно получиться. Либо можно использовать TableLayout.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
BeLove
@BeLove
security
Ридонли пользователь yasevich подсказал:
Нужно в main прописать
android:layout_toLeftOf="@id/icurrency". 
Ну и соответствующим образом упорядочить элементы в XML.
Ответ написан
Комментировать
VYakushev
@VYakushev
Разработчик Android в Nowtaxi
Посмотри этот код. Там описанная тобой проблема решена.
Ответ написан
Комментировать
Я вот никгода не отвечал на андроидные вопросы именно по вёрстке, но посмотрев на это, я в ужасе.
1. избегайте RelativeLayout!
2. переделайте на
<LinearLayout
  width="match_parent"
  height="wrap_content"
  orientation="horizontal"
  weight_sum="1">
    <TextView layoutWeight="1" width="0dp" height="wrap_content" drawable_left="@drawable/some_star_selector"/>
    <TextView width="wrap_content" />
    <TextView width="wrap_content" />
</LinearLayout>
Ответ написан
@AlterEvit
Android Developer
В общем несколько раз пытался подробно описать это решение, но случайно закрывал сраницу, так что скажу кратко, через ConstraintLayout можно реализовать избегая вложенностей, ниже пример:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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:background="@color/light_gray"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/imageView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="16dp"
        android:layout_marginEnd="16dp"
        android:layout_marginStart="16dp"
        android:layout_marginTop="16dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toStartOf="@+id/textView11"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0"
        app:srcCompat="@drawable/googleg_standard_color_18" />

    <TextView
        android:id="@+id/textView11"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:text="TextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView"
        app:layout_constraintBottom_toBottomOf="@+id/imageView5"
        app:layout_constraintEnd_toStartOf="@+id/textView12"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/imageView5"
        app:layout_constraintTop_toTopOf="@+id/imageView5"
        app:layout_constraintVertical_bias="0.0" />

    <TextView
        android:id="@+id/textView12"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:text="TextView"
        app:layout_constraintBottom_toBottomOf="@+id/textView11"
        app:layout_constraintEnd_toStartOf="@+id/textView13"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/textView11"
        app:layout_constraintTop_toTopOf="@+id/textView11"
        app:layout_constraintVertical_bias="0.0" />

    <TextView
        android:id="@+id/textView13"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:text="TextView"
        app:layout_constraintBottom_toBottomOf="@+id/textView12"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/textView12"
        app:layout_constraintTop_toTopOf="@+id/textView11" />
</android.support.constraint.ConstraintLayout>


5aafe3d2b50e8628578894.jpeg5aafe3d8975bf292610635.jpeg
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы