2014-09-18 51 views
0

當edittext單擊後出現軟鍵盤時,我遇到佈局問題(edittext和button inside)。整個佈局是rezising(變小)和元素內(edittext)要小。情況看起來像這樣,我有2個佈局,其中第一個需要50%的屏幕,下面是另外一個佈局。在第二個佈局中,我擁有所有editext和按鈕,我希望佈局保持原始大小 - 只需在出現鍵盤時將佈局設置得更高。我嘗試ajdustPan,adjustResize和其他,並不知道如何解決它。軟鍵盤更改我的佈局的大小

我在該佈局中使用%來指定元素高度,同時我將ScrollView作爲第一個佈局,但這也不起作用。我的佈局層次:

  • 滾動型
    • RelativeLayout的
      • 的RelativeLayout(50% - 空間大小)(alignBottom空間)
      • 空間
      • 的LinearLayout(50% - 空間大小)(layout_below空間)

在LinearLayout中,我有2個Edittext。

任何人都有建議嗎?謝謝

回答

1

在清單文件中設置Activity:標籤中的android:windowSoftInputMode =「stateUnchanged | adjustPan」。希望這會解決你的問題。

我已經嘗試了.xml文件:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity" > 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <RelativeLayout 
     android:id="@+id/top" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <ImageView 
      android:id="@+id/container" 
      android:layout_width="200dp" 
      android:layout_height="200dp" 
      android:layout_marginTop="50dp" 
      android:src="@drawable/ic_launcher" /> 

     <Button 
      android:id="@+id/button" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/container" 
      android:layout_marginTop="50dp" 
      android:clickable="true" 
      android:onClick="removeFragment" 
      android:text="Remove" /> 

     <Button 
      android:id="@+id/button" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/container" 
      android:layout_marginTop="50dp" 
      android:clickable="true" 
      android:onClick="removeFragment" 
      android:text="Remove" /> 
    </RelativeLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/top" 
     android:orientation="vertical" > 

     <Button 
      android:id="@+id/button" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="50dp" 
      android:clickable="true" 
      android:onClick="removeFragment" 
      android:text="Remove" /> 

     <EditText 
      android:id="@+id/userName" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="50dp" 
      android:hint="Username" 
      android:imeOptions="actionDone" 
      android:inputType="text" 
      android:maxLines="1" 
      android:singleLine="true" /> 
    </LinearLayout> 
</RelativeLayout> 

清單文件:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.test" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="18" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.example.test.MainActivity" 
     android:windowSoftInputMode="stateUnchanged|adjustPan" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 

+0

我已經嘗試,不工作:/ – oro 2014-09-18 16:00:58

+0

我想你只是想在鍵盤打開時向上移動佈局。 android:windowSoftInputMode =「stateUnchanged | adjustPan」對我來說工作正常。 – 2014-09-18 16:19:27

+0

是的,我想轉移佈局,但stateUnchanged | adjustPan,在我的情況下不能正常工作:/ – oro 2014-09-18 16:25:27