之外點擊你好我使用我的佈局浮動文本視圖。當我點擊編輯文本並不輸入任何內容或刪除編輯文本中的所有內容,然後單擊該視圖外部時,我的浮動標籤仍保留在高位。我想重置它的位置,因爲它之前有提示顯示,沒有插入任何文本。那麼如何實現這一目標呢?提前致謝。
而我正在使用支持設計庫來顯示浮動標籤。如何重置浮動標籤文本到其原始位置時,文本輸入佈局的Android
我下面this教程的浮動標籤。
之外點擊你好我使用我的佈局浮動文本視圖。當我點擊編輯文本並不輸入任何內容或刪除編輯文本中的所有內容,然後單擊該視圖外部時,我的浮動標籤仍保留在高位。我想重置它的位置,因爲它之前有提示顯示,沒有插入任何文本。那麼如何實現這一目標呢?提前致謝。
而我正在使用支持設計庫來顯示浮動標籤。如何重置浮動標籤文本到其原始位置時,文本輸入佈局的Android
我下面this教程的浮動標籤。
您可以添加一些代碼到你的活動,使他們edittexts以外的任何點擊後失去焦點。 下面是一個例子:
public static void setupForKeyboardDismiss(View view, final Activity activity) {
//Set up touch listener for non-text box views to hide keyboard.
if(!(view instanceof EditText)) {
view.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
hideSoftKeyboard(activity);
return false;
}
});
}
//If a layout container, iterate over children and seed recursion.
if (view instanceof ViewGroup) {
for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
View innerView = ((ViewGroup) view).getChildAt(i);
setupForKeyboardDismiss(innerView, activity);
}
}
}
public static void hideSoftKeyboard(Activity activity) {
try {
InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
}catch (Exception e){
e.printStackTrace();
}
}
然後就可以調用setupForKeyboardDismiss
方法傳遞一個包含這些edittexts任何觀點,其實你可以通過調用這個(你的活動的setContentView後),它適用於所有活動:
setupForKeyboardDismiss((ViewGroup) activity.findViewById(android.R.id.content), activity);
謝謝@ whd.nsr。這真的很有幫助。我使用editText.clearFocus()清除了編輯文本的焦點; setupForKeyboardDismiss()方法中的方法。 –
很高興這有幫助:) –
這是因爲您的edittext仍然有重點。您可以撥打editText.clearFocus()
當你點擊外面或其他視圖
@ whd.nsr的回答是真的很有幫助。我還通過使用afterTextChanged()方法清除焦點,找到了另一種使用文本觀察器來實現此目的的方法。我發現的唯一缺點是,如果我們先點擊edittext然後不輸入任何內容,它就無法觸發監聽器。 –