我正在扩展一个与其父级高度和宽度匹配的LinearLayout。然后在LinearLayout内部,我正在膨胀视图集以匹配父高度和宽度。膨胀的视图宽度与父级匹配,但膨胀的视图高度不匹配。
我在两个设备上测试了这个,一个运行KitKat(API 19),在这种情况下出现问题,一个运行Marshmallow(API 23),在这种情况下问题不会发生。
这是扩展的LinearLayout:
public class MessageBackground extends LinearLayout {
public MessageBackground(Context context) {
this(context, null);
}
public MessageBackground(final Context context, AttributeSet attrs) {
super(context, attrs);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.message_background_layout, this, true);
this.setBackgroundColor(context.getResources().getColor(R.color.red));
}
}
这是膨胀的XML布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minHeight="20dp"
android:background="#0000FF">
</RelativeLayout>
这些是我在KitKat和Marshmallow上得到的不同结果:
我尝试了几种变体来尝试让xml布局与KitKat上的LinearLayout的高度相匹配,但我似乎找不到让它工作的方法。任何行为不同的建议或理由都会有所帮助。