所以我正在为Android制作应用程序,我想强制平板电脑的横向定位和手机的纵向定位。然而,似乎我只能从我所看到的方向进行定位锁定,这会导致想要两个不同的设备方向的目的。
平板电脑:风景 电话:肖像
更具技术性。
我在“res / layout-xlarge-land”中有一个用于在平板电脑上进行美化的布局,我在“res / layout”中有原始布局,我只想明确地使用layout-xlarge-land作为平板电脑。没有别的,基本上只使用xlarge设备的横向。
谢谢!
答案 0 :(得分:42)
根据设备密度设置特定方向可能无效,因为手机的密度高于平板电脑。
我所做的是通过在清单文件中的activity标记中设置属性来禁用设备的方向传感器,如下所示:
android:screenOrientation="nosensor"
运行应用时,默认情况下会为手机设置纵向方向,为平板电脑设置横向(因此它会从layout-xlarge-land
中选择xml文件)。由于您已设置方向锁定,因此它仍保持此方向。
答案 1 :(得分:2)
您可以测量设备的实际尺寸(以英寸为单位),然后使用以下方式以编程方式设置方向:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
或
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
要获取设备的物理尺寸,您可以使用已发布的代码here。
它不是100%准确,但它足以决定设备的王者在运行应用程序。
答案 2 :(得分:0)
我不完全确定你在说什么,但看起来你应该只测量分辨率并采取相应行动。我的意思是,除了分辨率不同之外,你怎么知道它是手机还是平板电脑?
答案 3 :(得分:0)
使用过
的人onChange = data => {
//put your condition liek
if (data == 1) {
var myOptions = t.update(this.state.options, {
fields: {
enddate: {
disabled: { $set: false },
minimumDate: {
$set:
data.startdate < data.enddate
? data.startdate
: moment(new Date(data.startdate)).toDate()
}
}
}
});
}
并且没有单独工作,我在基本活动中除了此片段外还使用了它
android:screenOrientation="nosensor"
答案 4 :(得分:-2)
在“layout-large”文件夹布局中的布局菜单上设置名为llTablet的布局,在“layout”文件夹中的布局菜单上设置llPhone布局。通过菜单参考用户正在进入的第一个布局。然后检查您是否可以参考它。如果你不能引用llPhone那么它的平板电脑。
llPhone = (LinearLayout) findViewById (R.id.llPhone)
if (llPhone == null) {
tablet = true;
}
else {
tablet = false;
}