2016-12-27 7 views
1

ToolBarにはHam Burger Navigation Drawer Icon,App NameおよびSearch Iconがあります。これは私の小さな部分のHomeScreenです。私はSearch Iconをクリックすると、以下のように enter image description hereSearchView Androidのカスタムアイコン

SearchViewが示されている: enter image description here

Navigation DrawerBack Iconがあります。私はそれを無効にする/非表示にし、カスタム1をここに追加します。

マイSearchView次のプロパティました:私はFragmentに取り組んでいます

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 
<item 
    android:id="@+id/menu_item_search_places" 
    android:icon="@android:drawable/ic_search_category_default" 
    android:title="Search" 
    app:actionViewClass="android.support.v7.widget.SearchView" 
    app:showAsAction="always|collapseActionView" /> 

。何をここで行うことができるので、私は後ろのアイコンを無効/隠し、カスタムアイコンを含めることができますか?

編集:

<resources> 
<style name="ToolbarTheme" parent="Theme.AppCompat"> 
    <item name="colorControlNormal">@color/white</item> 
    <item name="actionMenuTextColor">@color/white</item> 
    <item name="homeAsUpIndicator">@drawable/ic_arrow_back_black_24dp</item> 
</style> 
</resources> 

、私は無効化を処理することができますどのように/バックを隠す:私はこれを含め 私styles.xmlファイルを、変更からアイコンをカスタマイズすることができる午前

アイコン?

私はこれを試しましたが、解決策を見つけることができません。

((ToolbarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(false); 
((ToolbarActivity) getActivity()).getSupportActionBar().setDisplayShowHomeEnabled(false); 

答えて

1

あなたのフラグメントでこれを試してみてください:

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    MenuItem searchViewMenuItem = menu.findItem(R.id.action_search);  
    mSearchView = (SearchView) searchViewMenuItem.getActionView(); 
    int searchImgId = getResources().getIdentifier("android:id/search_button", null, null); 
    ImageView v = (ImageView) mSearchView.findViewById(searchImgId); 
    v.setImageResource(R.drawable.your_new_icon); 
    mSearchView.setOnQueryTextListener(this); 
    return super.onPrepareOptionsMenu(menu); 
} 
+0

私の更新を参照してください。しかし、私もこれを試してみます。 –

+0

私はその「戻るアイコン」を隠すことができません。 –

0

あなたは、プログラムhomeAsUpボタンに描画可能に設定することができます - サポートアクションバーの場合

ActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator); 

を -

getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator); 

非表示にするには上のボタン -

actionBar.setDisplayShowHomeEnabled(false); 
+0

新規追加する前に、最初に非表示にするか無効にする必要があります。 –

+0

を使用できます - drawerToggle.setDrawerIndicatorEnabled(false); – tahsinRupam

+0

私は自分の答えを編集しました。アクションバーやツールバーを使用していますか? – tahsinRupam

0

これはカスタムのものではありません。

しかし、MenuItemCompat.OnActionExpandListener() {...}click eventback iconを処理し、onMenuItemActionCollapse(MenuItem item) {...}メソッドで処理します。

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    menu.clear(); 
    inflater.inflate(R.menu.home, menu); 
    searchItem = menu.findItem(R.id.menu_item_search_places); 
    searchItem.setIcon(FontIconDrawable.inflate(getContext(), R.xml.ic_search)); 
    searchView = (SearchView) MenuItemCompat.getActionView(searchItem); 
    searchView.setOnSuggestionListener(this); 
    searchView.setOnQueryTextListener(this); 
    MenuItemCompat.setOnActionExpandListener(searchItem, new MenuItemCompat.OnActionExpandListener() { 
     @Override 
     public boolean onMenuItemActionExpand(MenuItem item) { 
      return true; 
     } 

     @Override 
     public boolean onMenuItemActionCollapse(MenuItem item) { 
       // my stuff are here 
      return true; 
     } 
    }); 
} 
関連する問題