gpt4 book ai didi

android - 在 Intellij IDEA/Android Studio 中使用合并根标签预览布局

转载 作者:IT老高 更新时间:2023-10-28 12:58:12 29 4
gpt4 key购买 nike

假设我们正在开发基于 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 的根,我们会有额外的 View 层级,所以我们使用合并标签:

<?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,我们会看到类似的内容: Preview with merge

(就是Android Studio,Intellij IDEA也一样,关于Eclipse我就不知道了)

预览版大大加快了布局的开发速度,即使对于某些布局也失去了这么大的帮助,这很遗憾。可能有办法指定,预览应该如何解释特定布局中的 merge 标签?

最佳答案

有一个新的 parentTag 工具属性 (added in 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_widthandroid:layout_height 才能使布局在编辑器中正确显示。

关于android - 在 Intellij IDEA/Android Studio 中使用合并根标签预览布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17296552/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com