XML, как мне установить imageView на позицию в макете - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть два ряда, расположенных вертикально. Обе строки содержат значок местоположения с некоторым текстом после него, и у меня maxlength textview установлено в 8.

У меня нет проблем, когда размер текста больше 8, потому что значок местоположения расположен хорошо, но когда размер текста меньше 8, положение значка местоположения сдвигается вправо. Как я могу это исправить?

Все, что я хочу, это чтобы значок местоположения второго ряда находился в той же позиции, что и первый, а затем должен следовать текст.

Примечание: я не хочу использовать paddingRight для достижения этой цели, потому что я намерен использовать этот макет в виде списка, где я не буду знать минимальную длину текста.

Изображение макета добавлено, XML длинный, просто посмотрите на строку на изображении, вы поймете.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin">

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

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="1dp"
            android:orientation="vertical">

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:background="@drawable/copyboder4_two"
                android:layout_marginBottom="4dp">

                <TextView
                    android:id="@+id/most_lodged_number"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="77"
                    android:textSize="11sp"/>
            </LinearLayout>


        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingLeft="15dp">

            <TextView
                android:id="@+id/list_header"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:text="The Swtich at the LR is faulty, come and fix as  possible"
                android:layout_marginBottom="4dp"/>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:paddingRight="20dp">

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

                    <TextView
                        android:id="@+id/list_detail"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:maxLines="1"
                        android:text="I can perceive that the switch is vertyy.. " />



                        <ImageView
                            android:id="@+id/most_complaints_expand"
                            android:layout_width="16dp"
                            android:layout_height="14dp"
                            android:src="@drawable/ic_expand_more_black_18dp"
                            android:tint="@color/colorPrimaryDark"
                            android:layout_gravity="bottom" />
                </LinearLayout>
            </LinearLayout>
        </LinearLayout>

    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingRight="42dp"
        android:layout_marginTop="9dp"
        android:layout_gravity="right">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginRight="7dp">

            <ImageView
                android:layout_width="16dp"
                android:layout_height="16dp"
                android:layout_marginRight="3dp"
                android:src="@drawable/icons8_manager48" />

            <TextView
                android:id="@+id/lecturer_number"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="20"
                android:textSize="12sp"/>

        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginRight="7dp">

            <ImageView
                android:layout_width="16dp"
                android:layout_height="15dp"
                android:layout_marginRight="3dp"
                android:src="@drawable/icons8_student_male_48"
                android:id="@+id/imageView2" />

            <TextView
                android:id="@+id/student_number"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="25"
                android:textSize="12sp"/>

        </LinearLayout>

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


            <ImageView
                android:layout_width="16dp"
                android:layout_height="15dp"
                android:src="@drawable/icons8_marker_40"
                android:layout_marginRight="1dp"/>

            <TextView
                android:id="@+id/location_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Mass Comm Lab"
                android:maxLength="8"
                android:textSize="12sp"/>
        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="30dp">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="1dp"
            android:orientation="vertical">

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:background="@drawable/copyboder4_two"
                android:layout_marginBottom="4dp">

                <TextView
                    android:id="@+id/most_lodged_number2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="77"
                    android:textSize="11sp"/>
            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingLeft="15dp">

            <TextView
                android:id="@+id/list_header1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:text="The Swtich at the LR is faulty, come and fix as  
                 possible"
                android:layout_marginBottom="4dp"/>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:paddingRight="20dp">

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

                    <TextView
                        android:id="@+id/list_detail2"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:maxLines="1"
                        android:text="I can perceive that the switch is vertyy.. 
                                 "/>

                    <ImageView
                        android:id="@+id/most_complaints_expand2"
                        android:layout_width="16dp"
                        android:layout_height="14dp"
                        android:src="@drawable/ic_expand_more_black_18dp"
                        android:tint="@color/colorPrimaryDark"
                        android:layout_gravity="bottom" />

                </LinearLayout>

            </LinearLayout>
        </LinearLayout>

    </LinearLayout>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingRight="42dp"
        android:layout_marginTop="9dp"
        android:layout_gravity="right">


        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginRight="7dp">

            <ImageView
                android:layout_width="16dp"
                android:layout_height="16dp"
                android:layout_marginRight="3dp"
                android:src="@drawable/icons8_manager48" />

            <TextView
                android:id="@+id/lecturer_number1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="20"
                android:textSize="12sp"/>

        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginRight="7dp">

            <ImageView
                android:layout_width="16dp"
                android:layout_height="15dp"
                android:layout_marginRight="3dp"
                android:src="@drawable/icons8_student_male_48"/>

            <TextView
                android:id="@+id/student_number1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="25"
                android:textSize="12sp"/>

        </LinearLayout>

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


            <ImageView
                android:layout_width="16dp"
                android:layout_height="15dp"
                android:src="@drawable/icons8_marker_40"
                android:layout_marginRight="1dp"/>

            <TextView
                android:id="@+id/location_text1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Lab 1"
                android:maxLength="8"
                android:textSize="12sp"/>
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

enter image description here

Ответы [ 3 ]

0 голосов
/ 28 апреля 2018

Честно говоря, ваш макет немного беспорядок и сложнее, чем нужно. Поэтому сложно точно определить, как получить то, что вы хотите. Сказав это, я верю, если вы добавите android:layout_weight="1" и android:layout_width="0" к этим TextViews это может указать вам правильное направление Вы также, вероятно, должны добавить пустую View ширины, которую вы хотите сделать отступ в начале горизонтальной линии.

0 голосов
/ 28 апреля 2018

Вы можете установить минимальный ems вашего текстового представления "location_text" в xml, как показано ниже:

android:minEms="8"
0 голосов
/ 28 апреля 2018

вам нужно установить фиксированную layout_width для двух текстовых представлений, другой вариант - добавить "" пробелы для завершения текста для каждого текстового представления

...