Android SearchView не позволяет вводить текст (конфликт с TabActivity?) - PullRequest
4 голосов
/ 10 марта 2012

Я работаю над приложением, которое использует SearchView, встроенное в ActionBar.Он отлично работает во всем приложении, за исключением одного Activity.В этом Activity я могу щелкнуть значок поиска, чтобы отобразить представление поиска через панель действий, но как только я что-то наберу в окне поиска, мой текстовый ввод игнорируется (текст не отображается), и фокус перемещаетсяиз окна поиска.

Основное различие между этим действием и другими в моем приложении заключается в том, что в этом задании есть вкладки, которые реализованы с использованием TabActivity.Мне интересно, если это причина, и если у кого-нибудь есть потенциальное решение.

Это код для SearchView:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu, menu);
    SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
    searchView.setSubmitButtonEnabled(true);
    searchView.setOnQueryTextListener(queryTextListener); 
    searchView.setQueryHint("product search");

    return true;
} 

final SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() { 
    @Override 
    public boolean onQueryTextChange(String newText) { 
        return true; 
    } 

    @Override 
    public boolean onQueryTextSubmit(String query) { 
        _listControl = new ListControl(_thisProduct,query);
        _listControl.startGetData(); 
        return true; 
    } 
}; 

Это настройка моей активности с вкладками.Вкладки переключаются между различными представлениями.

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.product);


    //set up tabs 
    mTabHost = getTabHost();
    mTabHost.addTab(mTabHost.newTabSpec("tab_test1").setIndicator("Info").setContent(R.id.productLayout));
    mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("Specs").setContent(R.id.specLayout));
    mTabHost.addTab(mTabHost.newTabSpec("tab_test3").setIndicator("Reviews").setContent(R.id.reviewLayout));
    mTabHost.addTab(mTabHost.newTabSpec("tab_test4").setIndicator("Buy").setContent(R.id.textView4));//


    mTabHost.setCurrentTab(0);
    mTabHost.getTabWidget().getChildAt(0).getLayoutParams().height = 40;
    mTabHost.getTabWidget().getChildAt(1).getLayoutParams().height = 40;
    mTabHost.getTabWidget().getChildAt(2).getLayoutParams().height = 40;
    mTabHost.getTabWidget().getChildAt(3).getLayoutParams().height = 40;

1 Ответ

0 голосов
/ 07 февраля 2014

Я уверен, что SearchView должен работать с вкладками и постараюсь сообщить вам очень скоро. Между тем, не могли бы вы попробовать использовать ViewPager вместо работы с вкладками, которая работает с фрагментами или как опция, сам ActionBar предоставляет функции для отображения вкладок. Дай мне знать, как это происходит.

...