android – 为什么我的布局不能用“adjustPan”移动得足够多?

前端之家收集整理的这篇文章主要介绍了android – 为什么我的布局不能用“adjustPan”移动得足够多?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在我的应用程序中使用adjustPan时出现了一些问题,因为它无法正常工作.其他一些用户也遇到过这个问题,所以我认为分享这个问题很重要(Layout doesn’t move up enough when clicking EditText).

注意:我使用的是Android Studio,而我正在使用“即时应用”,因此文件的位置会有所不同.

当我在布局中使用adjustPan时,我的活动不会向上移动到EditText出现在软键盘上方的位置(请参阅图像以获取详细信息).无论您是在Manifest文件还是Java文件中使用它,都会出现相同的结果.

不仅如此,最奇怪的部分是状态栏变得透明,而应该在通知图标后面的深蓝色条有点下降(参见图像详细信息).

Screenshot of issue

我尝试过几次尝试解决这个问题,比如使用adjustResize和setOnTouchListener,但我收到的这两个答案都没有解决这个问题.

我仍然无法弄清楚这个问题的原因,所以关于如何发现这个问题的原因的任何答案或评论也没关系.

这是我的一些代码

清单文件

Java文件

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.WindowManager;

public class Input_Activity extends AppCompatActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_input__activity);

    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
   }
}

XML文件

所有反馈将不胜感激.

最佳答案
在类级别创建一个类似InputMethodManager方法管理器的对象.
将这些行添加到onCreate()方法中,

methodManager = (InputMethodManager) this.getSystemService(this.INPUT_METHOD_SERVICE);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

在你的onClick()方法中,显示键盘,

methodManager.toggleSoftInputFromWindow(
    your_view_name.getApplicationWindowToken(),InputMethodManager.SHOW_FORCED,0);  

如果这个单词getApplicationWindowToken抛出一个错误,那么用getWindowToken替换它
希望能帮助到你.

猜你在找的Android相关文章