我有这个自定义布局,称为 semicardView。因为它非常复杂,而且我遇到了一些“onMeasure 耗时太长”的问题,所以我需要以某种方式扁平化它的层次结构。
我实例化布局表单 XML,它在适配器中调用。在构造函数中,我称之为:
View.inflate(context, R.layout.semester_card_layout, this);
布局资源如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/semesterInfo"
android:visibility="visible"
android:layout_marginLeft="6dp"
android:layout_marginRight="6dp"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
android:gravity="fill_horizontal"
android:layout_weight="1"
android:background="@drawable/card_ui_bg"
>
<TextView
android:layout_height="32dp"
android:layout_width="fill_parent"
android:text="@string/information"
android:id="@+id/card_title"
android:layout_marginLeft="6dp"
style="@style/Theme.Kosapp.Text.Light"
android:textAppearance="@android:style/TextAppearance.Holo.Large"
android:gravity="center_vertical"
android:textColor="@color/main_kosapp"/>
<LinearLayout
android:orientation="vertical"
android:id="@+id/card_content"
android:fillViewport="true"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
</LinearLayout>
<ViewStub
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout="@layout/zero_courses_label"
android:inflatedId="@+id/zeroCoursesMarker"
android:id="@+id/zeroCoursesMarker"/>
我要解决的问题是,虽然我的自定义视图已经应该像线性布局一样服务(它从它扩展),但在生成的布局层次结构中,它实际上只有一个子级 - 我的布局资源中的顶级线性布局文件。我尝试使用合并标签而不是线性布局。这可以解决这个问题,但我想保留那些在 XML 中设置的布局参数 ..(只是因为它们在 DIP 中)