我有这样的xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
android:background="@drawable/message_list_item_bg"
android:orientation="vertical"
android:padding="5dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_job_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="3.5"
android:ellipsize="end"
android:fontFamily="@font/opensans_semibold"
android:singleLine="true"
android:textColor="#333333"
app:autoSizeMaxTextSize="20sp"
app:autoSizeMinTextSize="8sp"
app:autoSizeStepGranularity="2sp"
app:autoSizeTextType="uniform" />
<TextView
android:id="@+id/tv_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:fontFamily="@font/opensans_semibold"
android:gravity="end"
android:textSize="12sp" />
</LinearLayout>
<TextView
android:id="@+id/tv_address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:ellipsize="end"
android:fontFamily="@font/opensans_regular"
android:gravity="center_vertical"
android:singleLine="true"
android:textColor="#999999"
app:autoSizeMaxTextSize="20sp"
app:autoSizeMinTextSize="8sp"
app:autoSizeStepGranularity="2sp"
app:autoSizeTextType="uniform" />
<com.lsjwzh.widget.materialloadingprogressbar.CircleProgressBar
android:id="@+id/loader"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_gravity="center_horizontal|center_vertical"
android:visibility="gone"
app:mlpb_arrow_height="2dp"
app:mlpb_arrow_width="7dp"
app:mlpb_enable_circle_background="true"
app:mlpb_progress_stoke_width="2.5dp"
app:mlpb_show_arrow="false" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_company"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:fontFamily="@font/opensans_regular"
android:singleLine="true"
android:textColor="#666666"
android:layout_weight="3.5"
app:autoSizeMaxTextSize="20sp"
app:autoSizeMinTextSize="8sp"
app:autoSizeStepGranularity="2sp"
app:autoSizeTextType="uniform" />
<ImageView
android:id="@+id/add_to_notepad"
android:layout_width="24dp"
android:layout_height="24dp"
android:background="@drawable/add_to_notepad"
android:layout_gravity="end"/>
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="24dp"
android:layout_height="24dp"
android:gravity="end"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>
和列表项包含的我的图像视图不能停留在同一位置。看起来像这样:
也许我的适配器有问题,如果我的适配器有问题,我将添加其代码。我尝试将RelativeLayout
与它的标签一起使用,并且我发现LinearLayout
的权重对解决此问题没有帮助。那么,我该如何解决这个问题?
答案 0 :(得分:1)
我弄清楚了它发生的原因。问题在这里:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_company"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:fontFamily="@font/opensans_regular"
android:singleLine="true"
android:textColor="#666666"
android:layout_weight="3.5"
app:autoSizeMaxTextSize="20sp"
app:autoSizeMinTextSize="8sp"
app:autoSizeStepGranularity="2sp"
app:autoSizeTextType="uniform" />
<ImageView
android:id="@+id/add_to_notepad"
android:layout_width="24dp"
android:layout_height="24dp"
android:background="@drawable/add_to_notepad"
android:layout_gravity="end"/>
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="24dp"
android:layout_height="24dp"
android:gravity="end"
android:visibility="gone" />
</LinearLayout>
您已将TextView宽度设置为0dp,并且没有赋予任何元素权重。这意味着ImageView实际上依赖于您的TextView,因此随着其中内容的更改而更改。 希望将其替换为以下代码可能会对您有所帮助。
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_company"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:fontFamily="@font/opensans_regular"
android:singleLine="true"
android:textColor="#666666"
app:autoSizeMaxTextSize="20sp"
app:autoSizeMinTextSize="8sp"
android:layout_marginRight="30dp"
app:autoSizeStepGranularity="2sp"
app:autoSizeTextType="uniform" />
<ImageView
android:id="@+id/add_to_notepad"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_alignParentRight="true"
android:background="@drawable/add_to_notepad" />
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_alignParentRight="true"
android:visibility="gone" />
</RelativeLayout>
建议:我在您的代码中看到很多嵌套,请尝试使用“约束布局”或“相对布局”来制作更简单的XML。祝你好运。