Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓人像vs景观_Android_User Interface_Landscape Portrait - Fatal编程技术网

Android 安卓人像vs景观

Android 安卓人像vs景观,android,user-interface,landscape-portrait,Android,User Interface,Landscape Portrait,我知道有可能有一个纵向和横向模式的布局(这不是问题)。比如说,在纵向模式下,我想显示3个文本视图(实际上我有3个不同的图形,每个xyz轴一个),在横向模式下,我只想显示一个文本视图(在我的例子中,一个图形包含所有3个轴),所有这些视图都有自己的id 现在在相应的活动中,如何设置ui控件?因为在横向模式下只有一个文本视图,而在纵向模式下只有3个。所以,当我处于纵向模式时,我只能在textview 1、2和3中写入内容,而不能在横向的textview中写入任何内容,反之亦然 手动检查ui控件是否在此

我知道有可能有一个纵向和横向模式的布局(这不是问题)。比如说,在纵向模式下,我想显示3个文本视图(实际上我有3个不同的图形,每个xyz轴一个),在横向模式下,我只想显示一个文本视图(在我的例子中,一个图形包含所有3个轴),所有这些视图都有自己的id

现在在相应的活动中,如何设置ui控件?因为在横向模式下只有一个文本视图,而在纵向模式下只有3个。所以,当我处于纵向模式时,我只能在textview 1、2和3中写入内容,而不能在横向的textview中写入任何内容,反之亦然

手动检查ui控件是否在此处(非空)不是正确的解决方案,对吗

e、 g

假设在纵向模式下,我有一个id为“text1”的文本视图,在横向模式下有一个id为“text2”的文本视图。 现在,在活动的on create方法中,我执行以下操作:

text1 = (TextView) findViewById(R.id.text1);
text2 = (TextView) findViewById(R.id.text2);

text1.setText("some text");
text2.setText("some other text");

我总是会得到一个
NullPointerException
,因为在任何一种情况下,其中一个文本视图都不存在。在使用该字段之前,可以检查该字段是否不为空,但这会引入更多需要注意的逻辑-因此它的可维护性较低

可能是通过根据您使用的模式使某些文本视图可见/不可见? 您可以通过以下方式检测正在使用的模式:getResources().getConfiguration().orientation

我不知道这是否真的能回答你的问题,但是


最好的方法是,您可以在两个版面中创建并使用visibility=“gone”隐藏它们,以保持对视图的有效引用,因为您可能不想浪费版面中不可见的资源设置和处理字段,除非这在您的应用程序中有意义,您应该检查
null
视图,这会让您了解正在处理的方向:

text1 = (TextView) findViewById(R.id.text1);
text2 = (TextView) findViewById(R.id.text2);

if ( text1 != null ) text1.setText("some text");
if ( text2 != null ) text2.setText("some other text");

事实上,这就是我现在正在做的,但是我在不止一个地方使用TextView,并且总是在前面加上NOTNULL检查,这会使代码变得有点混乱,使其可读性降低,所以我认为可能还有另一个最佳实践。当然,将视图设置为不可见会“浪费”资源,但在我的情况下,这并不是一个真正的问题,所以我选择使用它,因为代码中不需要任何额外的逻辑。