回收视图行文本重叠在较小的设备上

时间:2017-06-17 07:53:30

标签: android android-layout android-relativelayout

我正在构建一个简单的行布局,以便在我的循环视图中动态添加数据,所以我构建了一个这样的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#cfcfcf">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="10dp"
        android:background="#ffffff"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/plantPhoto"
            android:layout_width="120dp"
            android:layout_height="100dp"
            android:layout_weight="1"
            android:background="#c7c7c7"
            android:padding="0dp" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="20"
            android:orientation="vertical">

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <com.example.afcosta.inesctec.pt.android.Helpers.NexusBoldTextView
                    android:id="@+id/plantName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="left"
                    android:padding="15dp"
                    android:text="TextView"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textColor="@color/emerald" />

                <ImageView
                    android:id="@+id/starIcon"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentEnd="true"
                    android:padding="15dp"
                    android:src="@drawable/ic_star" />

            </RelativeLayout>


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


                <com.example.afcosta.inesctec.pt.android.Helpers.NexusBoldTextView
                    android:id="@+id/data"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_toStartOf="@+id/cameraForbiden"
                    android:text="TextView"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:textColor="@color/base" />

                <ImageView
                    android:id="@+id/cameraForbiden"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentEnd="true"
                    android:src="@drawable/ic_no_photos" />

                <ImageView
                    android:id="@+id/userIcon"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"

                    android:gravity="left"
                    android:src="@drawable/ic_user" />

                <com.example.afcosta.inesctec.pt.android.Helpers.NexusBoldTextView
                    android:id="@+id/password"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_toRightOf="@+id/userIcon"
                    android:layout_alignBottom="@+id/userIcon"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                    android:text="Filipe"
                    android:textColor="@color/base" />

            </RelativeLayout>

        </LinearLayout>
    </LinearLayout>

这种方法的主要问题是,当我在较小的设备上检查我的解决方案左侧的文本或右侧的文本时,我正在搜索的一个解决方案是根据设备大小减少内容,但没有&#39找不到。

这就是我在Nexus 5上的例子:

bigger screan

这是我在小型设备上获得的内容: smaller screan

对这些人的任何帮助?

非常感谢

1 个答案:

答案 0 :(得分:0)

您可以使用线性布局。您可以为每个项目指定权重

试试这段代码:

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#cfcfcf">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="10dp"
            android:background="#ffffff"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/plantPhoto"
                android:layout_width="120dp"
                android:layout_height="100dp"
                android:layout_weight="1"
                android:background="#c7c7c7"
                android:padding="0dp" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="20"
                android:orientation="vertical">

                <LinearLayout
                    android:orientation="horizontal"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">

                    <TextView
                        android:id="@+id/plantName"
                        android:layout_width="0dp"
                        android:layout_weight="1"
                        android:layout_height="wrap_content"
                        android:gravity="left"
                        android:padding="15dp"
                        android:text="TextView"
                        android:textAppearance="?android:attr/textAppearanceSmall"
                        android:textColor="@color/black" />

                    <ImageView
                        android:id="@+id/starIcon"
                        android:layout_width="0dp"
                        android:layout_weight="0.5"
                        android:layout_height="wrap_content"
                        android:padding="15dp"
                        android:src="@drawable/ic_art_track_black_24dp" />

                </LinearLayout>


                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:padding="15dp"
                    android:orientation="horizontal">


                    <ImageView
                        android:id="@+id/cameraForbiden"
                        android:layout_width="0dp"
                        android:layout_weight="1"
                        android:layout_height="wrap_content"
                        android:src="@drawable/ic_art_track_black_24dp" />

                    <TextView
                        android:id="@+id/data"
                        android:layout_width="0dp"
                        android:layout_weight="2.5"
                        android:layout_height="wrap_content"
                        android:text="TextView"
                        android:textAppearance="?android:attr/textAppearanceSmall"
                        android:textColor="@color/black" />

                    <TextView
                        android:id="@+id/password"
                        android:layout_width="0dp"
                        android:layout_weight="2"
                        android:textAlignment="viewEnd"
                        android:layout_height="wrap_content"
                        android:layout_toRightOf="@+id/userIcon"
                        android:layout_alignBottom="@+id/userIcon"
                        android:textAppearance="?android:attr/textAppearanceSmall"
                        android:text="Filipe"
                        android:textColor="@color/black" />

                    <ImageView
                        android:id="@+id/userIcon"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1.5"
                        android:gravity="left"
                        android:src="@drawable/ic_art_track_black_24dp" />

                </LinearLayout>

            </LinearLayout>
        </LinearLayout>
</LinearLayout>