当键盘在屏幕上时,使TextView不移动

时间:2016-05-12 09:26:03

标签: android android-layout keyboard android-edittext

每次点击TextView并打开软输入键盘时,我都会EditText继续移动。 EditText位于页面底部。我想要它,以便当键盘出现时我所拥有的TextView不会移动。就我而言,TextView被称为No comments to display.以下是点击我的EditText

时会发生什么的示例

enter image description here

最初,TextView包含在下面较浅的灰色区域内,但是当我点击EditText时,它会被向上推。这是我的代码:

public class Comments extends AppCompatActivity {
    private TextView noCommentsView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.comments);
        EditText comment = (EditText) findViewById(R.id.write_comment);
        TextView noCommentsView = (TextView) findViewById(R.id.no_comments_text);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
        noCommentsView.setVisibility(View.VISIBLE);         
    }
}

现在我知道adjustResize只是推动了一切,这就是TextView被推高的原因。但是,我希望它能让TextView保持原状。我曾尝试使用getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);这实现了我的目标,但EditText不随键盘移动,因为整个布局未调整。有没有办法解决?有没有办法提升EditText,但没有TextView向上移动?谢谢!

5 个答案:

答案 0 :(得分:4)

getWindow()方法置于setContentView()之上。或者从代码中删除getWindow()方法,并在清单文件中添加android:windowSoftInputMode="adjustResize|stateHidden"

答案 1 :(得分:1)

on AndroidManifest.xml

添加:android:windowSoftInputMode="stateVisible|adjustResize"

这对你有用吗? 祝这个项目好运:))

答案 2 :(得分:0)

Android Dev博客上的

checkout THIS帖子。最重要的可能是行

android:windowSoftInputMode="adjustPan"

adjustPan

  

活动的主窗口未调整大小以便为软键盘腾出空间。而是自动平移窗口内容,以便键盘不会遮挡当前焦点,用户可以随时看看他们在打字什么。这通常不如调整大小,因为用户可能需要关闭软键盘才能进入并与窗口的模糊部分进行交互。

有关其他选项/标志的更多信息HERE

答案 3 :(得分:0)

机器人:windowSoftInputMode = “adjustPan | stateHidden”

答案 4 :(得分:0)

在android Manifest中,添加以下行:

机器人:windowSoftInputMode = “stateHidden | adjustPan”。 adjustPan说:

活动的主窗口未调整大小以便为软键盘腾出空间。相反,窗口的内容会自动平移,以便键盘不会遮挡当前焦点,用户可以随时看到他们正在键入的内容。这通常不如调整大小,因为用户可能需要关闭软键盘才能进入并与窗口的模糊部分进行交互。

来源:http://developer.android.com/guide/topics/manifest/activity-element.html