gpt4 book ai didi

Android布局选择问题

转载 作者:行者123 更新时间:2023-11-30 01:13:58 25 4
gpt4 key购买 nike

我有一个 Activity A,它有两种类型的布局。手机具有单一布局,而平板电脑具有主从布局。 Master-Detail 布局适用于 7 英寸横向和 10 英寸平板电脑。我使用了以下布局限定符:

-layout - for phones
-layout-sw720dp - for 10 inch tablet
-layout-w820dp-land - for 7 inch tablet landscape
-layout-h820dp - for 7 inch tablet portrait

到目前为止一切正常。

问题:

现在我希望该 Activity 仅在手机纵向模式下工作,在 7 英寸和 10 英寸平板电脑上双向工作,为此我使用了此链接中的以下资源和尺寸限定符 https://stackoverflow.com/a/14793611/373889

for res/values
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="portrait_only">true</bool>
</resources>

for res/values-sw720dp
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="portrait_only">false</bool>
</resources>

for res/values-w820dp-land
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="portrait_only">false</bool>
</resources>

for res/values-h820dp
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="portrait_only">false</bool>
</resources>

现在的问题是,在 7 英寸平板电脑中,如果以纵向模式启动,则会在两个方向上显示正常的手机布局,如果以横向模式启动,则会在两个方向上显示主从布局。它没有正常工作。手机在正常布局下运行良好,10 英寸平板电脑在双向主从布局下运行良好。

如果这种方法有问题,请告诉我。谢谢。

最佳答案

根据我的经验,我认为您应该为每个屏幕尺寸做一个布局,我认为您做到了。在 setonContentView(...) 之后执行此操作:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

并根据屏幕的高度和宽度锁定或不锁定设备的方向。要锁定,您可以添加这些行:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

并且为了不锁定屏幕,不要在 android list 或 Activity 中添加任何与屏幕方向相关的内容,默认情况下启用旋转。

我希望它有效,让我知道。

关于Android布局选择问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38144965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com