2016-06-01 40 views
0

我想用建議列表實現searchview。 通常情況下,建議列表的下拉寬度顯示爲與searchview文本區域相同。但是當我在AndroidManifest.xml中將以下屬性設置爲應用程序標籤時:android:theme =「@ android:style/Theme.Black.NoTitleBar.Fullscreen」 ,我發現建議列表寬度顯示的大於searchview文本區域。 我試圖將autoCompleteTextView.setDropdownWidth(int)的dropdownwidth設置爲某​​個值,但沒有奏效。如何設置搜索視圖的下拉寬度以匹配搜索文本區域的寬度android

enter image description here

回答

0

你可以做這樣的事,在這裏我需要填充下拉屏幕寬度:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // inflate our menu 
    getMenuInflater().inflate(R.menu.search_menu, menu); 

    // find MenuItem and get SearchView from it 
    MenuItem searchMenuItem = menu.findItem(R.id.search); 
    SearchView searchView = (SearchView) searchMenuItem.getActionView(); 


final AutoCompleteTextView searchTextView = (AutoCompleteTextView) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text); 

    // get AutoCompleteTextView from SearchView 
    final AutoCompleteTextView searchEditText = (AutoCompleteTextView) searchView.findViewById(searchEditTextId); 
    final View dropDownAnchor = findViewById(searchTextView.getDropDownAnchor()); 
    if (dropDownAnchor != null) { 
     dropDownAnchor.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { 
      @Override 
      public void onLayoutChange(View v, int left, int top, int right, int bottom, 
             int oldLeft, int oldTop, int oldRight, int oldBottom) { 

       // calculate width of DropdownView 


       int point[] = new int[2]; 
       dropDownAnchor.getLocationOnScreen(point); 
       // x coordinate of DropDownView 
       int dropDownPadding = point[0] + searchTextView.getDropDownHorizontalOffset(); 

       Rect screenSize = new Rect(); 
       getWindowManager().getDefaultDisplay().getRectSize(screenSize); 
       // screen width 
       int screenWidth = screenSize.width(); 

       // set DropDownView width 
       searchTextView.setDropDownWidth(screenWidth - dropDownPadding * 2); 
      } 
     }); 
    } 

    return super.onCreateOptionsMenu(menu); 
} 

原來的答覆: https://stackoverflow.com/a/26344053/1959110