使用 Android Studio 将现有布局元素包装在另一个布局中

Wrap existing layout element in another layout with Android Studio

在设计 activity 布局时,我经常遇到需要将现有元素包装在布局中的情况。例如,假设我有以下布局结构。

<LinearLayout android:orientation="vertical">
    <TextView />
    <TextView />
</LinearLayout>

而且我想将其中一个 TextView 包装在另一个 LinearLayout 中以获得关注。

<LinearLayout android:orientation="vertical">
    <LinearLayout android:orientation="horizontal">
        <TextView />
        <SomeNewElement />
    </LinearLayout>
    <TextView />
</LinearLayout>

有没有简单的方法来实现这一点,最好是通过 Android Studio 设计器?

您可以将新布局从元素列表(面板)拖到组件树中(作为顶级布局的子项)。

然后您只需将 textView 拖放到新布局中即可。

是的,您可以轻松定制自己的包装纸。

Ctrl+Alt+S 进入设置。导航至 Editor>Live Templates>surround。我在这里使用环绕作为示例,但您可以导航到最适合您的逻辑部分。您会看到一些已经为您准备好的示例。请注意通配符 $Selections 的使用,它代表您将包装的全部代码。

现在单击设置窗格中右侧的加号图标开始添加您自己的。在对话框的下半部分,您将在模板文本区域输入您的上下文,并使用您喜欢的键盘快捷键序列。另请注意 Applicable in... 更改 link,它提供了 programming-language 特定于您所需包装的选项。

这个漂亮的功能允许您在特定上下文中提供快捷方式,这不会干扰您可能正在编程的其他语言 - 它们可能使用相同的快捷方式。

单击 Apply 进行编辑。如果您想将其添加到实时模板中的另一个 collection 标题,您也可以复制 right-click 和 select Move。完成后,单击 OK 按钮。

返回 Android Studio 代码行编辑,同时 select 编辑要包装的代码,按 Ctrl+Alt+T 立即显示 select 封闭编码的上下文菜单您已经提供了它的快捷方式。

此外,来自 Whosebug 的 Ali Nem(下方 link)的一个有价值的快速提示显示在编辑器中按 Ctrl+W 几次可以方便地 select 整个代码块。您会发现,与“鼠标移动”您的 select 离子相比,它的效果要好得多。

参见:Shortcut to select a line of code in Android Studio