2016-05-12 56 views
0

我有一個TextView,每次點擊我的EditText時都會移動,並打開我的軟輸入鍵盤。 EditText位於頁面的底部。我需要它,以便在出現鍵盤時我的TextView不會移動。在我的情況下,TextView被稱爲No comments to display.這裏是發生什麼事的例子,當我在我的EditText當鍵盤在屏幕上時,使TextView不移動

enter image description here

單擊原來,TextView載於下文淺灰色區域內,但是當我點擊EditText ,它被推高了。這裏是我的代碼:

public class Comments extends AppCompatActivity { 
    private TextView noCommentsView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.comments); 
     EditText comment = (EditText) findViewById(R.id.write_comment); 
     TextView noCommentsView = (TextView) findViewById(R.id.no_comments_text); 
     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 
     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
     noCommentsView.setVisibility(View.VISIBLE);   
    } 
} 

現在我知道adjustResize簡單地推動了一切這就是爲什麼TextView得到推升那麼高。不過,我希望它能保持TextView的位置。我嘗試過使用getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);,這完成了我的目標,但EditText不能隨鍵盤移動,因爲整個佈局未調整。有沒有辦法解決?有沒有辦法提高EditText但沒有TextView向上移動?謝謝!

+0

你試過'adjustPan'嗎? –

+0

可能重複檢查我的答案在這裏http://stackoverflow.com/questions/37162919/how-to-make-button-stay-on-the-bottom-when-soft-keyboard-goes-up/37163111#37163111 –

回答

0

結帳THIS在Android開發人員博客上發帖。對你最重要的可能是線路沒有調整

android:windowSoftInputMode="adjustPan" 

adjustPan

活動的主窗口,以騰出空間給軟鍵盤。相反,窗口的內容會自動平移,以便當前焦點永遠不會被鍵盤遮擋,並且用戶始終可以看到他們正在鍵入的內容。這通常不如調整大小,因爲用戶可能需要關閉軟鍵盤才能與窗口的遮蔽部分進行交互。

更多關於其他選項/標誌上AndroidManifest.xml

添加此HERE

+0

嗨,'adjustPan'的問題是整個視圖被平移,當前視圖獲得焦點。與此相關的問題是我的屏幕頂部較深的灰色部分被推出視圖,這是我不想要的。任何其他提示? – user1871869

+0

這種方式適用於鍵盤「問題」,現在問題可能與您的視口有關。嘗試設置爲您的可滾動視圖'android:fillViewport =「true」'作爲[這裏](http://www.curious-creature.com/2010/08/15/scrollviews-handy-trick/) – snachmsm

1

android:windowSoftInputMode="stateVisible|adjustResize"

這篇對你的工作? 祝你好運與項目:)

+0

嗨,甚至隨着調整調整大小,我的觀點被推高了。這就是我一直在使用的東西。即使我將它添加到我的「Manifest」文件中,我的問題仍然存在。任何其他想法? – user1871869

+0

與你有什麼關係? –

+0

我正在擴展AppCompatActivity – user1871869

4

把你的getWindow()方法setContentView()以上。或者從代碼中刪除getWindow()方法並在清單文件中添加android:windowSoftInputMode="adjustResize|stateHidden"

+0

嗨,即使調整調整大小,我的觀點被推高。這就是我一直在使用的東西。即使我將它添加到我的「Manifest」文件中,我的問題仍然存在。任何其他想法? – user1871869

+0

如果您使用全屏模式,那麼它將不起作用 –

0

機器人:windowSoftInputMode = 「adjustPan | stateHidden」

0

在Android清單,添加一行:

機器人:windowSoftInputMode = 「stateHidden | adjustPan」。 adjustPan說:

活動的主窗口沒有調整爲軟鍵盤騰出空間。相反,窗口的內容會自動平移,以便當前焦點永遠不會被鍵盤遮擋,用戶始終可以看到他們正在鍵入的內容。這通常不如調整大小,因爲用戶可能需要關閉軟鍵盤才能與窗口的遮蔽部分進行交互。

來源:http://developer.android.com/guide/topics/manifest/activity-element.html