2016-12-08 167 views
4

我在DialogFragment的底部有一個AppCompatAutoCompleteTextView鍵盤隱藏AutoCompleteTextView下拉菜單

在橫向模式下的平板電腦(API 19)上,當建議列表中只有一個元素時,下拉菜單由鍵盤覆蓋。當有更多的元素時,下拉框向上,並且正常工作。

在移動設備(API 22)上,即使建議列表中只有一個元素,也沒有任何問題,下拉列表總是向上顯示。

我已將android:windowSoftInputMode="adjustPan|stateHidden"添加到Manifest中的活動。

如何讓下拉菜單始終向上或不被鍵盤覆蓋?

回答

0
Work around the below the completionThreshold. Hope it works for you! 
<AutoCompleteTextView 
    android:id="@+id/someID" 
    android:layout_width="200dp" 
    android:layout_height="wrap_content" 
    android:completionThreshold="1" /> 

autocomplete.setThreshold(2); 
0
public static void hideSoftKeyboard(Activity activity) { 
    InputMethodManager inputMethodManager = 
      (InputMethodManager) activity.getSystemService(
        Activity.INPUT_METHOD_SERVICE); 
    inputMethodManager.hideSoftInputFromWindow(
      activity.getCurrentFocus().getWindowToken(), 0); 
} 

public void setupUI(View view) { 

    // 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(getActivity()); 
       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); 
      setupUI(innerView); 
     } 
    } 
} 

加入這一行你oncreatesetupUI(rootView.findViewById(R.id.parent));