android - studio - sqlscout破解




在Intellij IDEA/Android Studio中预览具有合并根标签的布局 (2)

也可以使用自定义类作为父类而不是合并类似

<com.mycompany.SomeView xmlns:android="http://schemas.android.com/apk/res/android">
...
</com.mycompany.SomeView>

然后直接膨胀此布局并将结果视图转换为SomeView 。 Android工作室将直接检查SomeView父类,并处理像LinerLayout这样的预览。 您可以使用onFinishInflate()方法通过findViewById()绑定视图。 此解决方案的好处是您可以将所有布局定义或样式定义直接放到布局文件中,不能在代码中使用类似setOrientation()方法。

假设我们正在开发基于LinearLayout的复合组件。 所以,我们创建这样的类:

public class SomeView extends LinearLayout {
    public SomeView(Context context, AttributeSet attrs) {
        super(context, attrs);

        setOrientation(LinearLayout.VERTICAL);
        View.inflate(context, R.layout.somelayout, this);
    }
}

如果我们将使用LinearLayout作为somelayout.xml的根,我们将拥有额外的视图级别,因此我们使用merge标签:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Some text"
        android:textSize="20sp"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Some other text"/>
</merge>

但是在IDE合并中的Preview选项卡总是充当FrameLayout,我们将看到类似这样的内容:

(这是Android Studio,Intellij IDEA是一样的,关于Eclipse我不知道)

预览加快了开发布局,很难过,即使对于某些布局也会失去如此巨大的帮助。 可能有一种方法可以指定,Preview应该如何解释特定布局中的merge标记?


有一个新的parentTag工具属性( 在Android Studio 2.2中添加 ),可用于指定合并标记的布局类型,这将使​​布局在布局编辑器预览中正确呈现。

所以用你的例子:

<merge xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:parentTag="LinearLayout"
    tools:orientation="horizontal">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Some text"
        android:textSize="20sp"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Some other text"/>
</merge>

注意 :必须指定android:layout_heightandroid:layout_height才能使布局在编辑器中正确显示。





android-tools-namespace