【问题标题】:XML how do i get the imageView fixed to a position in a LayoutXML我如何将imageView固定到布局中的位置
【发布时间】:2018-04-27 21:55:52
【问题描述】:

我有两行垂直放置。两行都包含一个位置图标,后面有一些文本,我将 textview maxlength 设置为 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>

【问题讨论】:

  • 我建议你从 LinearLayouts 转移到 ConstraintLayouts。它们会给你一个更干净的解决方案(没有嵌套布局!),但它们也带有指南,这就是你所需要的。看这里:developer.android.com/training/constraint-layout/…
  • 为什么maxlength是8,而最上面的那个是10
  • @kuti gbolahan 这是一个错误,两者都应该是 8,现在修复

标签: android android-layout android-linearlayout


【解决方案1】:

你需要为两个Textviews设置一个固定的layout_width,另一种选择是添加“”空格来完成每个textview的文本

【讨论】:

    【解决方案2】:

    老实说,你的布局有点乱,而且比它需要的更复杂。因此,很难确切地确定如何获得您想要的东西。话虽如此,我相信如果您添加android:layout_weight="1"android:layout_width="0" 对于那些 TextView,它可能会为您指明正确的方向。您可能还需要在水平线的开头添加一个您想要缩进宽度的空View

    【讨论】:

    • 我有一个错字。固定。
    • 是的,我是安卓新手。您的评论有帮助,谢谢!
    【解决方案3】:

    您可以在 xml 中设置“location_text”文本视图的最小 em,如下所示:

    android:minEms="8"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多