我有一个EditText(用户可以输入 numbers ), 所以当用户点击EditText文本框时,会打开一个带数字的键盘。
你可以看到键盘隐藏了文本框的一小部分。
但是当我按下一个键,例如0时,它看起来没问题。
我能做什么(除了把EditText放得更高)所以看起来会像第二张图片那样吗?
修改: .xml代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:weightSum="1">
<RelativeLayout android:id="@+id/relativeLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content">
<LinearLayout android:layout_width="wrap_content" android:orientation="vertical" android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_alignParentRight="true">
<android.widget.CheckedTextView android:id="@+id/checkedTextView1" android:layout_height="wrap_content" android:layout_width="fill_parent" android:textSize="17sp" android:text="@string/toString"></android.widget.CheckedTextView>
<AutoCompleteTextView android:layout_height="wrap_content" android:id="@+id/autoCompleteTextView1" android:layout_width="fill_parent" android:text="@string/emptyString" android:textSize="17sp" android:gravity="top|left" android:minHeight="62dp">
<requestFocus></requestFocus>
</AutoCompleteTextView>
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout2">
<Button android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_weight="0.33333333333" android:text="@string/contactsString" android:textSize="17sp" android:id="@+id/contactsButton"></Button>
<Button android:layout_weight="0.33333333333" android:layout_height="wrap_content" android:text="@string/groupsString" android:layout_width="fill_parent" android:id="@+id/groupsButton" android:textSize="17sp"></Button>
<Button android:layout_weight="0.33333333333" android:layout_height="wrap_content" android:text="@string/favouritesString" android:layout_width="fill_parent" android:id="@+id/button3" android:textSize="17sp"></Button>
</LinearLayout>
<TextView android:id="@+id/textView1" android:text="@string/messageString" android:layout_height="wrap_content" android:textSize="17sp" android:layout_width="fill_parent"></TextView>
<EditText android:layout_height="wrap_content" android:id="@+id/editText1" android:layout_width="fill_parent" android:gravity="top|left" android:minHeight="105dp"></EditText>
<TextView android:id="@+id/textView2" android:text="@string/repetition" android:layout_height="wrap_content" android:layout_width="fill_parent" android:textSize="17sp"></TextView>
<Spinner android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/spinner"></Spinner>
<LinearLayout android:layout_height="wrap_content" android:id="@+id/linearLayout3" android:layout_width="fill_parent">
<ImageView android:src="@drawable/button_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView1" android:layout_weight="0.1"></ImageView>
<EditText android:layout_height="wrap_content" android:id="@+id/timeET" android:inputType="number" android:layout_width="wrap_content" android:layout_weight="0.4"></EditText>
<ImageView android:src="@drawable/button_date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView2" android:layout_weight="0.1"></ImageView>
<EditText android:layout_height="wrap_content" android:id="@+id/dateET" android:inputType="number" android:layout_width="wrap_content" android:layout_weight="0.4" android:layout_marginRight="3dp"></EditText>
</LinearLayout>
<RelativeLayout android:id="@+id/relativeLayout2" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/linearLayout4" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_alignParentLeft="true">
<Button android:layout_weight="0.5" android:layout_height="wrap_content" android:text="@string/button_ok" android:layout_width="fill_parent" android:id="@+id/button4" android:textSize="17sp"></Button>
<Button android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/button5" android:layout_weight="0.5" android:text="@string/button_cancel" android:textSize="17sp"></Button>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
答案 0 :(得分:20)
我已经尝试过你的XML,是的,你说得对,问题就出现了。
要解决这个问题,我在MainActivity.java中编写了这一行,希望对您有所帮助,并将布局XML放在ScrollView中。
<强>活动强>
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.temp);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
final EditText time = (EditText)findViewById(R.id.timeET);
time.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
time.requestLayout();
MyActivity.this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_UNSPECIFIED);
return false;
}
});
final EditText date = (EditText)findViewById(R.id.dateET);
date.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
time.requestLayout();
MyActivity.this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_UNSPECIFIED);
return false;
}
});
}
XML 就像,
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ScrollView android:id="@+id/scrollView1"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:weightSum="1">
---
---
---
</ScrollView>
</LinearLayout>
答案 1 :(得分:5)
以这种方式更改为ScrollView:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:weightSum="1" >
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="wrap_content"
android:orientation="vertical"
android:layout_height="wrap_content"
android:id="@+id/linearLayout1"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true" >
<android.widget.CheckedTextView
android:id="@+id/checkedTextView1"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:textSize="17sp"
android:text="@string/toString" />
<AutoCompleteTextView
android:layout_height="wrap_content"
android:id="@+id/autoCompleteTextView1"
android:layout_width="fill_parent"
android:text="@string/emptyString"
android:textSize="17sp"
android:gravity="top|left"
android:minHeight="62dp" >
<requestFocus></requestFocus>
</AutoCompleteTextView>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/linearLayout2" >
<Button
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_weight="0.33333333333"
android:text="@string/contactsString"
android:textSize="17sp"
android:id="@+id/contactsButton" />
<Button
android:layout_weight="0.33333333333"
android:layout_height="wrap_content"
android:text="@string/groupsString"
android:layout_width="fill_parent"
android:id="@+id/groupsButton"
android:textSize="17sp" />
<Button
android:layout_weight="0.33333333333"
android:layout_height="wrap_content"
android:text="@string/favouritesString"
android:layout_width="fill_parent"
android:id="@+id/button3"
android:textSize="17sp" />
</LinearLayout>
<TextView
android:id="@+id/textView1"
android:text="@string/messageString"
android:layout_height="wrap_content"
android:textSize="17sp"
android:layout_width="fill_parent" />
<EditText
android:layout_height="wrap_content"
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:gravity="top|left"
android:minHeight="105dp" />
<TextView
android:id="@+id/textView2"
android:text="@string/repetition"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:textSize="17sp" />
<Spinner
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/spinner" />
<LinearLayout
android:layout_height="wrap_content"
android:id="@+id/linearLayout3"
android:layout_width="fill_parent" >
<ImageView
android:src="@drawable/button_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView1"
android:layout_weight="0.1" />
<EditText
android:layout_height="wrap_content"
android:id="@+id/timeET"
android:inputType="number"
android:layout_width="wrap_content"
android:layout_weight="0.4" />
<ImageView
android:src="@drawable/button_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView2"
android:layout_weight="0.1" />
<EditText
android:layout_height="wrap_content"
android:id="@+id/dateET"
android:inputType="number"
android:layout_width="wrap_content"
android:layout_weight="0.4"
android:layout_marginRight="3dp" />
</LinearLayout>
<RelativeLayout
android:id="@+id/relativeLayout2"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/linearLayout4"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentLeft="true" >
<Button
android:layout_weight="0.5"
android:layout_height="wrap_content"
android:text="@string/button_ok"
android:layout_width="fill_parent"
android:id="@+id/button4"
android:textSize="17sp" />
<Button
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/button5"
android:layout_weight="0.5"
android:text="@string/button_cancel"
android:textSize="17sp" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</ScrollView>
答案 2 :(得分:3)
将整个视图放在ScrollView中并设置android:windowSoftInputMode = adjustPan
它就可以了。
你只需要添加这段代码,
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
Your linear layout here....
</ScrollView>
我已经在我的HTC Desire上测试了它,它的工作正常对我来说希望它也适合你。
答案 3 :(得分:2)
您可以通过AndroidManifest中声明的活动的android:windowSoftInputMode元素向系统提供一些提示。尝试“adjustResize”值。
答案 4 :(得分:2)
将活动上的android:windowSoftInputMode设置为"adjustPan"
:
活动的主窗口未调整大小以便为软键盘腾出空间。相反,窗口的内容会自动平移,以便键盘不会遮挡当前焦点,用户可以随时看到他们正在键入的内容。
在全屏活动中使用此技术时要小心one potential bug。
答案 5 :(得分:1)
尝试更改线性布局以滚动视图...以便如果键盘位于上方,则editt文本用户可以滚动并键入...
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:weightSum="1">
<RelativeLayout android:id="@+id/relativeLayout1"
android:layout_width="fill_parent" android:layout_height="wrap_content">
<LinearLayout android:layout_width="wrap_content"
android:orientation="vertical" android:layout_height="wrap_content"
android:id="@+id/linearLayout1" android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true" android:layout_alignParentTop="true"
android:layout_alignParentRight="true">
<android.widget.CheckedTextView
android:id="@+id/checkedTextView1" android:layout_height="wrap_content"
android:layout_width="fill_parent" android:textSize="17sp"></android.widget.CheckedTextView>
<AutoCompleteTextView android:layout_height="wrap_content"
android:id="@+id/autoCompleteTextView1" android:layout_width="fill_parent"
android:textSize="17sp" android:gravity="top|left"
android:minHeight="62dp">
<requestFocus></requestFocus>
</AutoCompleteTextView>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/linearLayout2">
<Button android:layout_height="wrap_content"
android:layout_width="fill_parent" android:layout_weight="0.33333333333"
android:textSize="17sp" android:id="@+id/contactsButton"></Button>
<Button android:layout_weight="0.33333333333"
android:layout_height="wrap_content" android:layout_width="fill_parent"
android:id="@+id/groupsButton" android:textSize="17sp"></Button>
<Button android:layout_weight="0.33333333333"
android:layout_height="wrap_content" android:layout_width="fill_parent"
android:id="@+id/button3" android:textSize="17sp"></Button>
</LinearLayout>
<TextView android:id="@+id/textView1" android:layout_height="wrap_content"
android:textSize="17sp" android:layout_width="fill_parent"></TextView>
<EditText android:layout_height="wrap_content" android:id="@+id/editText1"
android:layout_width="fill_parent" android:gravity="top|left"
android:minHeight="105dp"></EditText>
<TextView android:id="@+id/textView2" android:layout_height="wrap_content"
android:layout_width="fill_parent" android:textSize="17sp"></TextView>
<Spinner android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/spinner"></Spinner>
<LinearLayout android:layout_height="wrap_content"
android:id="@+id/linearLayout3" android:layout_width="fill_parent">
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/imageView1"
android:layout_weight="0.1"></ImageView>
<EditText android:layout_height="wrap_content" android:id="@+id/timeET"
android:inputType="number" android:layout_width="wrap_content"
android:layout_weight="0.4"></EditText>
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/imageView2"
android:layout_weight="0.1"></ImageView>
<EditText android:layout_height="wrap_content" android:id="@+id/dateET"
android:inputType="number" android:layout_width="wrap_content"
android:layout_weight="0.4" android:layout_marginRight="3dp"></EditText>
</LinearLayout>
<RelativeLayout android:id="@+id/relativeLayout2"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/linearLayout4"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentLeft="true">
<Button android:layout_weight="0.5" android:layout_height="wrap_content"
android:layout_width="fill_parent" android:id="@+id/button4"
android:textSize="17sp"></Button>
<Button android:layout_height="wrap_content"
android:layout_width="fill_parent" android:id="@+id/button5"
android:layout_weight="0.5" android:textSize="17sp"></Button>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
请进行必要的更改...我已经删除了字符串和可绘制的src以便我的耐心......我需要先改变 线性布局到scrollview ..没有这个 android:windowSoftInputMode = adjustPan
答案 6 :(得分:1)
这比接受的答案简单得多。关键是<item name="android:windowSoftInputMode">adjustUnspecified</item>
行。将它添加到styles.xml:
<style name="AppTheme" parent="@android:Theme.Holo.Light.DarkActionBar">
<item name="android:alertDialogTheme">@style/iconPopUpDialogTheme</item>
</style>
<style name="DialogAppTheme" parent="AppTheme">
<item name="android:dialogTheme">@style/iconPopUpDialogTheme</item>
</style>
<style name="PopUpDialogTheme">
<item name="android:windowSoftInputMode">adjustUnspecified</item>
</style>
答案 7 :(得分:-1)
在您的Manifest.xml
文件中添加以下简单行:
android:windowSoftInputMode="adjustResize|stateHidden"