2016-01-28 23 views
5

Jak zbudować pasek aplikacji tak, jak w aplikacji Gmail?pasek aplikacji z widokiem krawędzi fragmentu

To jest, gdy nawigacja Szuflada jest
A/zawalił
B/rozszerzony
„szukaj ikona” [należącą do fragmentu z listy e-maili] jest po prawej krawędzi fragmentu.

Poniżej obrazów dla przypadków A i B.

Załóżmy użyciu AppBar rzeczy z Androida 5, na przykład:

  • Toolbar
  • AppBarLayout
  • CoordinatorLayout

enter image description here

enter image description here

Tnx!

Odpowiedz

0

Twoja aplikacja zawiera kilka elementów. Poprowadzę Cię do stron, które musisz wyszukać, aby uzyskać odpowiedzi niezbędne do ukończenia projektu.

Aby zaimplementować funkcję wyszukiwania w pasku aplikacji, na pewno pomoże Ci this answer. Nigdy tego nie robiłem sam, ale jestem pewny, że znajdziesz w nim odpowiedzi.

Aby zaimplementować resztę ekranu, wybrałbym kombinację działania Master/Detail Flow wraz z szufladą nawigacji. Więc przy tworzeniu projektu wybrałbym przepływ Master/Detail jako głównej działalności (część próbek Android studio) i dodać do niego następujący kod:

public class NavDrawerListAdapter extends BaseAdapter { 

    private Context context; 
    private ArrayList<NavDrawerItem> navDrawerItems; 

    public NavDrawerListAdapter(Context context, ArrayList<NavDrawerItem> navDrawerItems){ 
     this.context = context; 
     this.navDrawerItems = navDrawerItems; 
    } 

    @Override 
    public int getCount() { 
     return navDrawerItems.size(); 
    } 

    @Override 
    public Object getItem(int position) {  
     return navDrawerItems.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if (convertView == null) { 
      LayoutInflater mInflater = (LayoutInflater) 
        context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
      convertView = mInflater.inflate(R.layout.drawer_list_item, null); 
     } 

     ImageView imgIcon = (ImageView) convertView.findViewById(R.id.icon); 
     TextView txtTitle = (TextView) convertView.findViewById(R.id.title); 
     TextView txtCount = (TextView) convertView.findViewById(R.id.counter); 

     imgIcon.setImageResource(navDrawerItems.get(position).getIcon());   
     txtTitle.setText(navDrawerItems.get(position).getTitle()); 

     // displaying count 
     // check whether it set visible or not 
     if(navDrawerItems.get(position).getCounterVisibility()){ 
      txtCount.setText(navDrawerItems.get(position).getCount()); 
     }else{ 
      // hide the counter view 
      txtCount.setVisibility(View.GONE); 
     } 

     return convertView; 
    } 

} 

Nadzieja to pomaga :)

+0

ma ta odpowiedź ci pomogła? Jeśli tak, zaakceptuj i przegłosuj. –

Powiązane problemy