将app SDK 23升级到27后出现了一个奇怪的问题。这就是我所期望的(卡片全宽);
这是我得到的(有些卡不是全宽)。滚动导致卡片再次全宽!
msgh_detail.xml中的相关代码
<include
android:layout_width="wrap_content"
android:layout_height="400dp"
layout="@layout/msgh_detail_list" />
msgh_detail_list中的相关代码
<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/detail_recyclerview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
以下是设置视图的代码
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.msgh_detail_list_item, parent, false);
view.setBackgroundResource(mBackground);
return new ViewHolder(view);
}
这是实际布局msgh_detail_list_item
的代码<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:paddingTop="4dp"
android:paddingBottom="4dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:gravity="center_vertical"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="24dp"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_weight="0.97"
android:id="@+id/DayMMdd"
android:ellipsize="end"
android:maxLines="1"
android:hint="@string/day_mth_dte" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/arrivaltime"
android:layout_marginLeft="8dp"
android:hint="@string/Hour_min" />
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:id="@+id/avatar"
android:src="@drawable/status_1"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:longClickable="false" />
</LinearLayout>
<android.support.v7.widget.CardView
android:id="@+id/detail_cardview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardBackgroundColor="#ccecf9">
<LinearLayout
style="@style/Widget.CardContent"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/text2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?attr/textAppearanceListItem"
android:autoLink="web"
android:textColorLink="#009933"
android:layout_weight="0.97"
android:text="@string/test_msg" />
</LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
看起来很简单,以前工作得很好。
也许我有一些设置或层次结构略有错误。?
答案 0 :(得分:1)
在活动布局中将recyclerView的宽度更改为 match_parent 而不是 wrap_content ..导致问题...