5

庫使用:高亮所選項目菜單抽屜/滑動菜單

  1. https://github.com/SimonVT/android-menudrawer
  2. https://github.com/JakeWharton/ActionBarSherlock
  3. https://github.com/JakeWharton/Android-ViewPagerIndicator

問題:

我一直試圖在類似於YouTube/Beautiful Widget應用程序的menudrawer上實現突出顯示,但我不知道應該如何處理這個問題。

下面我給一個樣品到我的aprproche這我不知道,如果它的實現這樣的事情的正確方法:

這是一個菜單抽屜Adaptervew.click lisner我創建:

private AdapterView.OnItemClickListener mItemClickListener = new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, 
        long id) { 

      mPreviousView=mActiveView; 
      mActiveView=view; 
      mActivePosition = position; 
     // mDrawer.setActiveView(view, position); 
      TextView txtview=(TextView)mActiveView; 
      txtview.setBackgroundResource(R.drawable.abs__cab_background_top_holo_dark); 
      // mDrawer.closeMenu(); 
     } 
    }; 

所以基本上我想要做的是在當前選定的視圖上使用.9圖像!

我想知道的是是否有一個更系統的或更好的方法做同樣的!

我想才達到如下::

enter image description here enter image description here

回答

0

屏幕截圖你可以給它一個嘗試什麼:

public View getView(int position, View convertView, ViewGroup parent) { 
    view.setSelectionHandlerColorResource(Set your color here); 
} 
+3

方法setSelectionHandlerColorResource()是未定義的類型查看 – user1940676 2013-09-09 12:43:22

0

會有幾種方法解決這個問題。我最喜歡的方法是把你的ListView項的TextView一個的FrameLayout內。然後,這個FrameLayout裏可以有前景繪製住房的指標。可以顯示/隱藏這一指標以編程方式或使用選擇。

2

這是我的解決方案,以高亮顯示當前菜單項:

1)揭露NavDrawer活動的最後一個選擇drawerPosition:

public class NavDrawerBaseActivity extends Activity { 

    public static int LAST_DISPLAY_POSITION = 0; 

    private void displayView(int position) { 
     LAST_DISPLAY_POSITION = position; 

     Fragment fragment = null; 
     switch (position) { 
      case 0: 
       fragment = new ProgressPageFragment(); 
       break; 
      // .. 

      default: 
       break; 
     } 

     FragmentManager fragmentManager = getFragmentManager(); 
     fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit(); 

     // .. update selected item and title, then close the drawer 
    } 

然後第2步,在適配器類,引用,值:

public class NavDrawerListAdapter extends BaseAdapter { 
    // .. 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent { 

     TextView txtTitle = (TextView) convertView.findViewById(R.id.title); 

     if (position == NavDrawerActivity.LAST_DISPLAY_POSITION) { 
      txtTitle.setTextColor(Color.WHITE); 
     } 
     else 
      txtTitle.setTextColor(Color.BLACK); 

     // .. etc .. 
+0

這種簡單的解決方案很多谷歌搜索和frustratio後幫我ñ。謝謝 – 2017-12-12 13:27:23