我有以下android布局,这个代码在我的应用程序中的所有活动布局中都是重复的:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/activity_actionbar_background"/>
<FrameLayout
android:id="@+id/test_activity_content_frame_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?attr/actionBarSize">
<!-- content here -->
</FrameLayout>
</RelativeLayout>
我想将此布局重构为可以包含嵌套项的视图,然后在活动布局中使用,如:
<com.my.app.ContentLayout>
<!-- content here -->
</com.my.app.ContentLayout>
我如何开发我的ContentLayout
视图类来实现这一目标?
答案 0 :(得分:1)
您可以在自定义组件中重构该布局,您只需要将内容CustomLayout
中声明的内容放在内部FrameLayout
中(通过覆盖{{的默认行为) 1}}方法)。请查看以下示例:
addView()
组件本身将是:
<!-- R.layout.Inner_content basic inner content that will be added to our custom component -->
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<FrameLayout
android:id="@+id/dummy_id" <!-- we need an id that we could count on -->
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:background="@color/activity_actionbar_background"/>
<FrameLayout
android:id="@+id/test_activity_content_frame_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="?android:attr/actionBarSize">
<!-- content here -->
</FrameLayout>
</merge>