我知道您可以通过声明不同的layout
文件夹(如layout-large
或)来拥有不同的 UI 元素layout-xlarge
。但是,我不想每次更改我的应用程序界面时都更新两个单独的文件。
有没有其他方法可以让按钮仅visibility="gone"
在小屏幕上具有并且在大屏幕上具有正常可见性?
我知道您可以通过声明不同的layout
文件夹(如layout-large
或)来拥有不同的 UI 元素layout-xlarge
。但是,我不想每次更改我的应用程序界面时都更新两个单独的文件。
有没有其他方法可以让按钮仅visibility="gone"
在小屏幕上具有并且在大屏幕上具有正常可见性?
我将按钮分成 2 个 XML 文件 - 一个在layout-large
that hasvisibility="visible"
和一个在layout
that has visibility="gone"
,然后将按钮包含在我的 layout/home.xml 文件中。有效。
您可以将其分成两个 XML 布局文件,但您必须同时维护这两个文件。您可以通过拥有一个布局文件将其抽象出来,然后为按钮提供一种为平板电脑定义的样式,而不是为平板电脑定义的样式。
我会将其设置为 GONE 并在代码中进行更改。这样你就没有两个布局文件。
但是,我不会使用 Blumer 的getConfiguration().screenLayout
. 存储桶不再是处理不同屏幕尺寸的最佳方式。Dianne Hackborn 在一篇文章中解释了原因,但归结为:
根据迄今为止开发人员的经验,我们不相信这组有限的屏幕尺寸存储桶可以为开发人员提供他们所需的一切,以适应日益多样化的 Android 设备形状和尺寸。主要问题是桶之间的边界可能并不总是对应于消费者可用的设备或应用程序的特定需求。
相反,您应该使用它们的新数值——大致sw600dp
适用于 7 英寸平板电脑和sw720dp
10 英寸平板电脑:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout);
if (getResources().getBoolean(R.bool.sw600dp)) {
((Buton)findViewById(R.id.mybutton)).setVisibility(VISIBLE);
}
}