Android 同时更改不同密度的多个布局

Android 同时更改不同密度的多个布局,android,android-layout,android-studio,android-xml,Android,Android Layout,Android Studio,Android Xml,如果我对同一个视图有三种不同的布局(比如说,一种用于手机,一种用于平板电脑,另一种用于横向平板电脑),并且我想添加/更改三者共享的属性(比如,android:background),是否有办法在一个位置添加/更改它,并在其他两种布局中自动添加/更改它?是否有复制和粘贴的替代方案 不幸的是,事实并非如此。您可以为每组元素创建单独的布局,并使用include将它们包含在每个后续布局中,然后仅更新单个布局即可更新所有布局。但这意味着要有很多独立的布局。一个很好的例子是使用单独的工具栏布局,如下所示:

如果我对同一个视图有三种不同的布局(比如说,一种用于手机,一种用于平板电脑,另一种用于横向平板电脑),并且我想添加/更改三者共享的属性(比如,
android:background
),是否有办法在一个位置添加/更改它,并在其他两种布局中自动添加/更改它?是否有复制和粘贴的替代方案

不幸的是,事实并非如此。您可以为每组元素创建单独的布局,并使用
include
将它们包含在每个后续布局中,然后仅更新单个布局即可更新所有布局。但这意味着要有很多独立的布局。一个很好的例子是使用单独的
工具栏
布局,如下所示:

工具栏布局

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    style="@style/Toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
这项技术可以应用于任何您喜欢的内容,并允许您将来只编辑每个单独的布局一次,并将其应用于您使用它的任何地方。也可以在“包含”或“在代码中”下编辑这些布局内的尺寸


实现所需功能的唯一其他方法是在代码中显式处理所有内容,但我不建议这样做。

您可以为使用
背景属性的小部件(例如TextView或LinearLayout)应用
样式
,并确定该样式中的
背景属性。
更改
style
中的
background
属性将影响以前应用此样式的所有小部件


如果以编程方式更改该值,它将应用于当前使用的布局,这大概是您想要的?我可以在非常特定的时刻使用它,但不像一般规则那样。无论如何,谢谢你。嗯。。好的,我的例子不是很好,因为是的,
background
是一种有意义的风格。我更倾向于vguzzi建议的方向,或者Android Studio的插件/功能。
<include layout="@layout/toolbar" />