Android扩展的LinearLayout高度与父级匹配,但子级则不匹配

时间:2016-02-05 16:50:10

标签: android height relativelayout android-4.4-kitkat

我正在扩展一个与其父级高度和宽度匹配的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上得到的不同结果:

image

我尝试了几种变体来尝试让xml布局与KitKat上的LinearLayout的高度相匹配,但我似乎找不到让它工作的方法。任何行为不同的建议或理由都会有所帮助。

0 个答案:

没有答案