1

我已经在这个问题上停留了很长一段时间。在我的应用程序中,我有大约 5 个 TextView,当我按下 textview 时,SoftKeyboard 会出现,布局会向上移动到我能够看到 TextView 的位置。但问题是,当我开始输入时,布局恢复正常,我看不到 textView

这是我写的

        paramMarksTV.setTextIsSelectable(true);
        paramMarksTV.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                final View activityRootView =findViewById(R.id.headerpageLayout);
                activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
                    public void onGlobalLayout() {
                        Rect rect = new Rect();
                        activityRootView.getWindowVisibleDisplayFrame(rect);
                    }
                });
            }
        });
4

2 回答 2

0

回复晚了非常抱歉。这是布局文件

<RelativeLayout
        android:id="@+id/RLEvaluateButtons"
        android:layout_width="wrap_content"
        android:layout_height="88dip"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_toLeftOf="@+id/relativeLayout1" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dip"
            android:orientation="horizontal" >

            <ImageView
                android:id="@+id/IVEvaluateE"
                android:layout_width="50dip"
                android:layout_height="50dip"
                android:layout_marginLeft="25dp"
                android:layout_marginTop="15dip"
                android:background="@drawable/e_button" />

            <ImageView
                android:id="@+id/IVEvaluateVG"
                android:layout_width="50dip"
                android:layout_height="50dip"
                android:layout_marginLeft="5dip"
                android:layout_marginTop="15dip"
                android:background="@drawable/vg_button" />

            <ImageView
                android:id="@+id/IVEvaluateG"
                android:layout_width="50dip"
                android:layout_height="50dip"
                android:layout_marginLeft="5dip"
                android:layout_marginTop="15dip"
                android:background="@drawable/g_button" />

            <ImageView
                android:id="@+id/IVEvaluateF"
                android:layout_width="50dip"
                android:layout_height="50dip"
                android:layout_marginLeft="5dip"
                android:layout_marginTop="15dip"
                android:background="@drawable/f_button" />

            <ImageView
                android:id="@+id/IVEvaluateNI"
                android:layout_width="50dip"
                android:layout_height="50dip"
                android:layout_marginLeft="5dip"
                android:layout_marginTop="15dip"
                android:background="@drawable/ni_button" />
        </LinearLayout>

        <TextView
            android:id="@+id/TVMarksEval"
            android:layout_width="wrap_content"
            android:layout_height="65dip"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_marginRight="25dip"
            android:textColor="@color/black"
            android:textSize="18sp" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/relativeLayout1"
        android:layout_width="3dip"
        android:layout_height="88dip"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" >
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/relativeLayout2"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerInParent="true"
        android:layout_toRightOf="@+id/relativeLayout1" >

        <EditText
            android:id="@+id/ETEvaluateComment"
            android:layout_width="match_parent"
            android:layout_height="78dip"
            android:layout_marginRight="10dip"
            android:background="@color/white"
            android:gravity="top|left"
            android:inputType="textMultiLine"
            android:paddingLeft="2dip"
            android:textColor="@color/black"
            android:textSize="18sp" />
    </RelativeLayout>

    <TextView
        android:id="@+id/TVEvaluateparameter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="25dp"
        android:textColor="@color/black"
        android:textSize="18sp"
        android:textStyle="bold" />

</RelativeLayout>

清单文件很长,所以这是我声明类的部分

<activity
            android:name="com.newrubric.pep.android.ui.evaluate.NREvaluateActivity"
            android:screenOrientation="landscape"
            android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen"
            android:windowSoftInputMode="adjustPan" >
        </activity>
于 2013-07-10T10:17:11.933 回答
0

我认为您不需要弄乱 ViewTreeObserver。您只需要在 AndroidManifest.xml 中为所需的 Activity选择适当的值。android:windowSoftInputMode

于 2013-07-09T12:07:05.653 回答