这是代码MainActivity java和main.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_layout"
android:gravity="center"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:background="#75F575">
<LinearLayout
android:clickable="true"
android:layout_gravity="center"
android:orientation="vertical"
android:layout_width="250dp"
android:layout_height="100dp"
android:background="#C69817"
android:id="@+id/secondLayout">
<ListView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/mainListView1"/>
</LinearLayout>
</LinearLayout>
爪哇:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView lv = (ListView) findViewById(R.id.mainListView1);
ArrayAdapter<String> a = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1 ,
new String [] {"item1","item2"});
lv.setAdapter(a);
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
显示键盘时,列表视图抬起。如何防止这种情况发生。 没有listview - 一切正常(布局不上升)。 谢谢。
更新问题以回答FOliveira。 不幸的是,我无法在我的真实应用程序中删除java代码(setSoftInputMode)。必须是Java代码,并且listview的布局不得上升。尝试删除listview,你会看到布局没有绝对移动,为什么listview的布局正在移动?根据我的条件如何防止这种情况?
答案 0 :(得分:0)
您需要在android:windowSoftInputMode="adjustPan"
文件的标记中添加AndroidManifest.xml
。
活动的主窗口未调整大小以便为软键盘腾出空间。相反,窗口的内容会自动平移,以便键盘不会遮挡当前焦点,用户可以随时看到他们正在键入的内容。这通常不如调整大小,因为用户可能需要关闭软键盘才能进入并与窗口的模糊部分进行交互。
如果此选项不符合您的需求,您可以继续检查Android documention about soft input mode
答案 1 :(得分:0)
我正在使用android:windowSoftInputMode="stateVisible|adjustNothing"
,但这只适用于高于10的API(不幸的是)。
更新: 添加到listview后,此属性:
android:focusableInTouchMode="false"
android:isScrollContainer="false"
我完全解决了我的问题。