当android softinput再次弹出时页面不会移动

时间:2019-07-11 01:35:43

标签: android

我的页面上有一些EditText。当他们获得焦点时,软键盘将出现,并且整个页面将向上移动以使用户看到输入区域。但是,当我单击“后退”按钮隐藏键盘并再次单击EditText时,该页面将保留,并且键盘将使输入框为空。单击其他并再次单击此EditText时,页面将向上移动。我还有另一页效果很好。

两个页面处于同一活动中。该活动具有FrameLayout。这两个页面是从Fragment扩展过来的。

Manifest.xml中:

    <activity
        android:name=".XXXActivity"
        android:screenOrientation="landscape"
        android:windowSoftInputMode="adjustPan" />

Activity.xml中:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
<!-- 
other things... 
 -->
    <FrameLayout
        android:id="@+id/IDXXXPage"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>

EditText在两个片段中是相同的:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

<!-- 
other things... 
all edit text are the same
 -->
        <EditText
            android:id="@+id/IDXXXX"
            android:layout_width="200dp"
            android:layout_height="40dp"
            android:background="@color/white"
            android:maxLines="1"
            android:textColor="@color/black"
            android:layout_marginLeft="20dp"
            android:gravity="center"
            android:imeOptions="actionDone"
            android:inputType="text"
            />

以前有人遇到过这个问题吗?有什么建议吗?

2 个答案:

答案 0 :(得分:0)

尝试使用此

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class CreatedDateExtractor {
    public static void main(String[] args) {
        String url = "https://issues.apache.org/jira/projects/HADOOP/issues/HADOOP-16381?filter=allopenissues";
        Document doc = null;

        try {
            doc = Jsoup.connect(url).get();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        Elements elements = doc.select("*"); //This line finds whole elements in html document.
        System.out.println("# of elements : "+ elements.size());
        for(Element e: elements) {
            System.out.println(e);
        }   
    }
}

答案 1 :(得分:0)

仅在隐藏键盘时才会发生。 当它失去焦点时,一切正常,因此我通过创建一个从EditText扩展的类来解决,并在隐藏键盘时清除了焦点。

    @Override
    public boolean onKeyPreIme(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK &&
                event.getAction() == KeyEvent.ACTION_UP) {
            clearFocus();
        }
        return super.onKeyPreIme(keyCode, event);
    }

但是我仍然不知道为什么以及如何发生。