2016-12-08 4 views
4

У меня есть AppCompatAutoCompleteTextView внизу DialogFragment.Клавиатурные шкуры AutoCompleteTextView выпадающий список

На планшете (API 19) в ландшафтном режиме выпадающее меню покрывается клавиатурой, когда в списке предложений имеется только один элемент. Когда появляется больше элементов, выпадающее меню идет вверх и отлично работает.

На мобильном устройстве (API 22) проблем нет даже в том случае, если в списке предложений имеется только один элемент, выпадающее меню всегда отображается вверх.

Я уже добавил android:windowSoftInputMode="adjustPan|stateHidden" к деятельности в манифесте.

Как я могу сделать выпадающее меню всегда вверх или не закрываться клавиатурой?

ответ

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));

Смежные вопросы