【发布时间】:2014-03-06 06:13:43
【问题描述】:
我有一个自定义视图,它使用布局来扩展其中的子视图。
当这个视图被创建和膨胀时,视图层次结构有两个加 n 个视图:
MyCustomView -> RelativeLayout -> {subview1, subview2,…}
有没有办法消除RelativeLayout节点?
相关类:
class MyCustomView extends RelativeLayout {
...
public void start(Context context) {
final LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.view_custom, this);
}
...
}
相关的 XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#232323">
<TextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/view_video"
android:paddingTop="@dimen/activity_vertical_margin_medium"
android:paddingBottom="@dimen/activity_vertical_margin_slim"
android:paddingRight="@dimen/activity_vertical_margin_medium"
android:gravity="left"
android:text="@string/video_title"
android:textSize="@dimen/text_size_largest"
android:textColor="@color/text_login_gray"
android:textAllCaps="true"
android:background="#232323" />
<TextView
android:id="@+id/tv_desc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/tv_title"
android:layout_alignLeft="@+id/tv_title"
android:paddingBottom="@dimen/activity_vertical_margin_medium"
android:paddingRight="@dimen/activity_vertical_margin_medium"
android:gravity="left"
android:text="@string/video_desc"
android:textSize="@dimen/text_size_small"
android:textColor="@color/text_very_light_gray"
android:background="#232323" />
</RelativeLayout>
【问题讨论】:
-
当我用 'merge' 替换 RelativeLayout 时,如何修复 Android Studio 预览中的时髦外观?