5

Biblioteka używany:Podświetlanie wybranego elementu w menu szuflady/menu przesuwne

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

Pytanie:

Próbowałem zaimplementować podświetlanie menudrawera podobnie do aplikacji YouTube/Beautiful Widget, ale nie mam pojęcia, jak powinienem podejść do problemu.

poniżej daję próbkę do mojego aprproche których nie jestem pewien, czy jego poprawny sposób zaimplementować coś takiego:

To Menu szuflada Adaptervew.click Lisner utworzonego:

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(); 
     } 
    }; 

Więc w zasadzie to, co próbuję tutaj zrobić, to użyć obrazu .9 w bieżącym wybranym widoku!

Co chcę wiedzieć, czy istnieje bardziej systematyczne lub lepsze podejście do robienia tego samego!

co chcę achive zrzutów ekranu poniżej ::

enter image description here enter image description here

Odpowiedz

0

Można spróbować:

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

Sposób setSelectionHandlerColorResource() jest zdefiniowana dla typu widoku – user1940676

0

nie byłoby kilka sposobów zmierzyć się z tym. Moim ulubionym podejściem byłoby umieszczenie twojego elementu ListView w TextView wewnątrz FrameLayout. Ten FrameLayout może następnie mieć obudowę do przeciągania pierwszego planu twojego wskaźnika. Możesz pokazać/ukryć ten wskaźnik programowo lub za pomocą selektora.

2

To było moje rozwiązanie, aby zaznaczyć aktualną pozycję menu:

1) wystawiać ostatni wybierz drawerPosition aktywności NavDrawer:

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 
    } 

A potem Krok 2, w klasie adaptera odniesienia, który wartość:

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

to proste rozwiązanie pomogło mi po wielu googlowania i frustratio n. Dzięki –

Powiązane problemy