0

在改变方向后,我的 textview 有一个令人困惑的问题:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent">

<TextView
        android:text="Simple"
        android:layout_width="fill_parent"
        android:layout_height="200dp"
        android:background="@drawable/my_color_drawable"
        android:id="@+id/text1"
        android:layout_gravity="center"/><\FrameLayout>

当我以横向模式启动应用程序时,该方法getLineBounds(1,tmpRect) 会导致:

  • tmpRect.top = 69

然后我将手机方向更改为纵向,结果是:

  • tmpRect.top = 76

但是,改回横向后,结果设置为 74(以前为 69),从现在开始两个结果都不会改变。

以纵向模式启动应用程序时,结果为 76 和 74。

我真的很好奇为什么会发生这种情况,当在景观中开始时数字会有所不同,我将不胜感激。

信息:我的活动已设置android:screenOrientation="sensor"

编辑:似乎只有在使用 android > 4 时才会出现问题。

谢谢。

4

1 回答 1

0

使用横向和纵向时需要两种布局,否则值会发生变化。它根据您创建布局的方向设置为默认值。如果您只需要在设置为的一种模式下工作

android:screenOrientation="portrait"

或者

android:screenOrientation="landscape"
于 2013-08-28T14:40:29.177 回答