2017-01-04 3 views
-1

は、ホーム活動上のもので、私は注意してください 追加する方法タブレイアウトのフラグメントの1つにアクションバーのビューを動的に表示しますか?あなたは、私がAndroidアプリに取り組んでいます持っている場合

  • ホーム
    1. 以下
    2. 社会で5つのタブを追加したViewPager TabLaout &を使用して私に優れたソリューションを提供してください。私はMainActiviのために設定した
    3. 検索
    4. リンク

    ty値/スタイルでは、私はsearch.xmlにカスタムアクションバーのタグを配置しました。私はアクティビティのアクションバーにSearchViewを追加する方法を知っていますが、フラグメントを使用している問題に直面しています。私の目標は、ユーザーが「検索」タブをクリックするとアクションバーに検索ビューウィジェットを表示することです。他のタブでは、私は見せたくありません。さらに、タグ内のManifestファイルに <meta-data android:name="android.app.searchable" android:resource="@xml/searchable"/>を追加し、setHasOptionsMenu(true)を追加しました。検索フラグに しかし、アクションバーは検索画面で検索ウィジェットを表示せずに表示されています。私が間違っている箇所を修正してください。あなたが唯一のsearchFragmentでSearchViewを追加する必要が

  • +0

    デュードあなたを共有するために、あなたは本当につもりの必要性これ以上の助けが必要な場合は、(検索)フラグメント内のコードを使用してください。 tup、スタイル/テーマ、またはプログラミングロジック。 –

    答えて

    0

    searchFragmentクラス:

    @Override 
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_news, container, false); 
    ...   
        setHasOptionsMenu(true); 
    ..... 
    return rootView ;} 
    @Override 
        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
         super.onCreateOptionsMenu(menu, inflater); 
         inflater.inflate(R.menu.menu_search, menu); 
         try { 
          // Associate searchable configuration with the SearchView 
          SearchManager searchManager = 
            (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE); 
          SearchView searchView = 
            (SearchView) menu.findItem(R.id.action_search).getActionView(); 
          searchView.setSearchableInfo(
            searchManager.getSearchableInfo(getActivity().getComponentName())); 
          searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
           @Override 
           public boolean onQueryTextSubmit(String s) { 
            // do your search 
            return false; 
           } 
    
           @Override 
           public boolean onQueryTextChange(String s) { 
          // do your search on change or save the last string or... 
            return false; 
           } 
          }); 
    
    
         }catch(Exception e){e.printStackTrace();} 
        } 
    

    menu_searchのxml:

    <?xml version="1.0" encoding="utf-8"?> 
    <menu xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:app="http://schemas.android.com/apk/res-auto"> 
        <item android:id="@+id/action_search" 
         android:icon="@drawable/action_search_btn" 
         android:title="Search" 
         app:showAsAction="collapseActionView|ifRoom" 
         app:actionViewClass="android.support.v7.widget.SearchView"/> 
    </menu> 
    
    +0

    返信いただきありがとうございます.. @Yessine Mahdouani私はどのように私はちょうどアクションバーを表示することができます私をガイドしてください検索の断片私は他のfragments.howでアクションバーをしたくない? –

    +0

    menu_search.xmlはSearchFragmentのみです。他のフラグメントでは、あなたが望むようなアクションバーのための別のメニューを置くか、空のアクションバーを置くだけです。HomeFragment put:setHasOptionsMenu(true); ... ' @Override public void onCreateOptionsMenu(メニューメニュー、MenuInflaterインフレータ){super.onCreateOptionsMenu(menu、inflater); inflater.inflate(メニューmenu_home、メニュー); ... menu_home.xml: '<?xml version =" 1.0 "encoding =" utf-8 "?>

    ' –

    関連する問題