2016-07-03 101 views
0

如何防止鍵盤在彈出時隱藏佈局?我使用這一行代碼在鍵盤打開時調整佈局的大小。鍵盤隱藏佈局組件

Window.SetSoftInputMode(SoftInput.AdjustResize); 

結果是,雖然屏幕調整了某些設備的大小,但它並沒有達到其他設備所需的程度。例如,這裏的佈局看起來在一個設備上的內容:

enter image description here

這裏是它的外觀在其他設備上:

enter image description here

在第二圖像,你可以看到,登錄按鈕由於鍵盤與其重疊,因此是可見的一半。頂部的「登錄」文本也被切斷。我該如何製作,使所有設備的佈局看起來都一樣?

編輯

我也有我的Menifest文件這一行:

<activity android:name=".AccountActivity" android:label="yourtime" android:windowSoftInputMode="adjustResize|stateHidden"></activity> 

這裏的佈局的代碼:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:minWidth="25px" 
android:minHeight="25px" 
android:weightSum="100" 
android:id="@+id/signinwrapper" 
android:background="#F73494"> 
<LinearLayout 
    android:orientation="vertical" 
    android:minWidth="25px" 
    android:minHeight="25px" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:id="@+id/linearLayout2" 
    android:layout_weight="5" 
    android:gravity="center"> 
    <TextView 
     android:text="Login" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/textView1" 
     android:textAllCaps="true" 
     android:textColor="#FFFF" 
     android:textSize="14sp" /> 
</LinearLayout> 
<LinearLayout 
    android:paddingTop="20dp" 
    android:orientation="horizontal" 
    android:minWidth="25px" 
    android:minHeight="25px" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="40" 
    android:id="@+id/linearLayout1"> 
    <ImageView 
     android:src="@drawable/logo" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/imageView1" /> 
</LinearLayout> 
<LinearLayout 
    android:orientation="horizontal" 
    android:minWidth="25px" 
    android:minHeight="25px" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:id="@+id/linearLayout2" 
    android:layout_weight="15" 
    android:paddingTop="10dp"> 
    <TextView 
     android:text="Your home of Entertainment" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/textView1" 
     android:gravity="center" 
     android:paddingLeft="20dp" 
     android:paddingRight="20dp" 
     android:textAllCaps="true" 
     android:textColor="#FFFF" /> 
</LinearLayout> 
<LinearLayout 
    android:orientation="vertical" 
    android:minWidth="25px" 
    android:minHeight="25px" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:id="@+id/linearLayout3" 
    android:layout_weight="45"> 
    <EditText 
     android:id="@+id/username" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:inputType="textEmailAddress" 
     android:hint="Username" 
     android:background="@drawable/editor" 
     android:layout_marginLeft="70dp" 
     android:layout_marginRight="70dp" 
     android:textSize="20dp" 
     android:gravity="center" 
     android:textStyle="bold" 
     android:textColor="#FFFF" /> 
    <EditText 
     android:id="@+id/password" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:inputType="textPassword" 
     android:hint="Password" 
     android:background="@drawable/editor" 
     android:textSize="20dp" 
     android:layout_marginTop="10dp" 
     android:layout_marginLeft="70dp" 
     android:layout_marginRight="70dp" 
     android:gravity="center" 
     android:textStyle="bold" 
     android:textColor="#FFFF" /> 
    <ProgressBar 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/progressBar" 
     android:layout_centerInParent="true" 
     android:layout_marginTop="20dp" 
     android:background="@drawable/ProgressBarStyle" 
     android:layout_gravity="center_horizontal" 
     android:visibility="gone" /> 
    <Button 
     android:text="Login" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/btnlogin" 
     android:layout_marginLeft="100dp" 
     android:layout_marginRight="100dp" 
     android:background="@drawable/buttonstyles" 
     android:textColor="#F73494" 
     android:layout_marginTop="20dp" 
     android:textSize="12sp" /> 
</LinearLayout> 

回答

1

不要做在代碼中。在AndroidManifest xml文件中執行此操作。在代碼中你會得到奇怪的結果,特別是如果你有對話框。

該模式所做的是強制您的應用調整大小以超出鍵盤。然而,有些東西只佔用空間。如果你的佈局有足夠的空白來調整大小,它會。如果沒有,那麼鍵盤仍然會覆蓋部分應用程序。你沒有發佈你的佈局,所以我不能給你更詳細的答案。

+0

我已更新我的原始問題。請看一看。 –

+0

我注意到一件事 - 您的權重設置爲100,但所有權重的總和實際上是105.刪除頂部線性佈局上的權重並查看它是否修復了事情。請注意,您仍然會遇到問題,請查看「登錄」這個詞的底部是如何切斷的。沒有辦法解決這個問題,只能給它更多的空間。我能看到的唯一方法是通過縮小圖像或縮小文字大小,不會有太多垂直空白要殺。 –

+0

哦,我沒有意識到這一點。我儘可能小的文字和圖像,但如果我使它們太小,它們會在屏幕尺寸較大的設備上顯得太小。使用所有這些組件實現佈局的最佳方式是什麼,而不會影響任何內容。 Facebook應用程序在彈出鍵盤時將隱藏在登錄按鈕下方的所有內容隱藏起來,但它們仍然可以管理小屏幕內的所有內容。我沒有該設備的佈局問題,所以我將不得不測試以後。我們是否可以控制調整大小以及在鍵盤打開時要顯示的內容? –