我目前正在开发一个应用程序,它可能会在所有Android设备上使用。我发现根据不同的屏幕尺寸调整我的XML布局文件真的很有挑战性。我在这个主题上浏览了很多,并在Developer网站找到了一个有用的文档。该文档很不错,并提供了有关屏幕兼容性应该做什么的足够信息。
问题:
1.如果我在 res / layout-sw600dp 和 res / layout-sw720dp 等文件夹中有两种不同的布局,应用会自动决定这些布局中的哪一种是用吗?
2.假设我更喜欢手机的ListView和Tabs for Tabs作为主页显示,我将如何定义我的布局以及如何将它们用于UI?
关于如何解决第二个问题的功能的任何想法将受到高度赞赏。提前致谢。
答案 0 :(得分:1)
您可以通过选中“hasHoneycomb”在java中对其进行区分,制表符会将tru作为返回值。一种方法是:您可以根据条件从setcontentview()设置不同的布局。
if(hasHoneycomb()) {
setcontentView(layout_for_tabs);
} else {
setcontentView(layout_for_phones);
}
答案 1 :(得分:0)
是的,app会自动决定用于当前设备屏幕的布局文件。
为ListView和GridView提供不同的ID。在代码中使用findViewById()
方法创建视图时。
如果找到了ListView(findViewById(R.id.list)
返回View)应用程序正在手机上运行,否则(findViewById(R.id.list)
返回null
并且findViewById(R.id.grid)
返回View)应用程序正在平板电脑上运行。
答案 2 :(得分:0)
1)是的,它将根据屏幕尺寸。
2)给他们不同的ID,看看哪一个可见:
ListView mList = (ListView) findViewById( R.id.homeList );
GridView mGrid = (GridView) findViewById( R.id.homeGrid );
if( mList != null ) {
// set list adapter
} else if( mGrid != null ) {
// set grid adapter
} else {
// neither view exists...
}
答案 3 :(得分:-1)
对于问题1,是的Android会自动选择并决定两者中最合适的。
对于2,这是链接 - Determine if the device is a smartphone or tablet? 希望能帮助到你。 :)