键盘打开时UI向上移动

时间:2013-08-05 13:27:50

标签: android

我正在制作应用程序的UI。当我试图在EditText中输入值时,键盘会向上移动UI。 键盘打开时请帮助我,不要向上移动UI。

<activity
        android:name=".AddProductsActivity"
        android:configChanges="orientation"
        android:hardwareAccelerated="false"
        android:windowSoftInputMode="adjustResize" />

5 个答案:

答案 0 :(得分:12)

它解决了我的问题。

感谢所有人。

<activity
    android:name=".AddProductsActivity"
    android:configChanges="orientation"
    android:hardwareAccelerated="false"
    android:windowSoftInputMode="adjustPan" />

答案 1 :(得分:1)

  1. 使用RelativeLayout在另一个RelativeLayout中显示Top和Bottom栏,它覆盖整个屏幕。
  2. 顶部栏

    android:id="@+id/top"
    android:layout_alignParentTop = "true"
    android:layout_alignParentRight = "true"
    android:layout_alignParentLeft = "true"
    android:layout_width="wrap_content"
    android:layout_height="<fix height like 50dp or as per requirement>"
    

    底栏:

    android:id="@+id/bottom"
    android:layout_alignParentBottom="true"
    

    1. 现在添加一个ScrollView:

      机器人:layout_width =&#34; WRAP_CONTENT&#34; 机器人:layout_height =&#34; WRAP_CONTENT&#34; 机器人:layout_below =&#34; @ + ID /顶部&#34; 机器人:layout_above =&#34; @ + ID /底&#34;

    2. 现在将子视图添加到此滚动视图,该视图可以是RelativeLayout或LineareLayout中的任何一个。我们需要这个子视图来包装我们想要在屏幕中间添加的其他子视图,现在我们想看到任何内容,只需将该视图添加为此布局的子项,如EditText或您喜欢的任何内容。 / p>

    3. 现在当KeyBoard出现时,中间的scrollview将向上滚动,这不会扭曲你的UI ..

      我希望它会有所帮助,如果你还有问题,请回复我...... :)

答案 2 :(得分:0)

在清单中添加以下行您的活动代码

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

答案 3 :(得分:0)

将此行 android:windowSoftInputMode =“adjustResize”从清单文件中的标记移至该活动。

答案 4 :(得分:0)

因为我使用TabActivity作为主要活动,然后使用FragmentActivity作为我的选项卡式活动,所以清单设置似乎无济于事。所以,我的解决方案是:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
    setContentView(R.layout.activity_fragment);
    // Setup fragment
    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new Fragment())
                .commit();
    }
}

在create上显式调用setSoftInputMode(SOFT_INPUT_ADJUST_RESIZE)。希望如果manifest.xml没有帮助,可以帮助一些人。