2013-03-26 64 views
1

我知道你可以通过声明不同的layout文件夹(如layout-largelayout-xlarge)来拥有不同的UI元素。但是,我不想每次更改我的应用程序界面时都更新两个单独的文件。如何仅在Android上的大型设备上使用按钮?

是否有任何其他方式有一个小屏幕上只有visibility="gone"的按钮和大屏幕上的正常能见度?

回答

1

我分离按钮进入2个XML文件 - 一个在layout-largevisibility="visible",一个在layoutvisibility="gone",然后包括我的布局/ home.xml文件的按钮。有效。

+1

这是最简单的答案 - 关键在于你只有单独的文件对于按钮,而不是整个活动布局或类似的东西。如果你需要重复这种行为,那么我认为你可以在样式声明中包含可见性。 – atw13 2013-03-26 22:50:17

0

您可以将它分成两个XML布局文件,但是必须同时维护两个XML布局文件。您可以通过使用一个布局文件将其抽象出来,然后为按钮定义针对这两种平板电脑的样式。

我会将它设置为GONE并将其更改为代码。这样你就没有两个布局文件。

但是,我不会使用布鲁默的方法getConfiguration().screenLayout。铲斗不再是处理不同屏幕尺寸的最佳方式。 Dianne Hackborn explains why in a post,但它归结为:

基于开发者的经验,到目前为止,我们并不认为这 有限的设定画面尺寸桶为开发人员提供他们需要 在适应日益多样化的一切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); 
    } 
} 
+1

关于水桶的好处。既然你的做法是正确的,涵盖了同样的方法,我已经将其移除了。 – Blumer 2013-03-27 03:18:01

相关问题