2014-12-10 44 views
18

Gmail uygulamasının tablet tasarımını araştırıyordum. Bu Navigation Drawer uygulamasında diğerlerinden farklıdır. Referansınız için resim ekledim.Gmail Tablet'in Navigasyon Çekmecesi gibi uygulanması

enter image description here

ben çekmeceyi açın Ve ayrıca normal gezinme çekmecesi davranışı gibi gerçekleşmesi gerekir.

enter image description here

Ben aynı şekilde uygulamak istiyoruz. Ben arıyordum ama sadece bu link bulundu Bu çok yararlı değil. Birisi bana öneride bulunabilir mi bunu nasıl yapabilirim?

+0

bunun için, http panelini kaydırarak kullanabilirsiniz yoktur: // www.incredibleandros.com/slidingpanel-android-example/ –

+0

@TusharPandey Cevabınız için teşekkür ederiz. Bu benim hatam, daha önce soruyu açıklayamadım. Şimdi tekrar düzenledim. Bu davranışın Navigasyon Çekmecesi gibi olmasını istiyorum. Lütfen ikinci resmi düşün ve bana yardım et. –

+0

Bu yeni malzeme tasarımı Navigasyon çekmeceli ToolBar, https: //chris.banes.me/2014/10/17/appcompat-v21/ –

cevap

13

Ana bölmede bir kenar boşluğu ve çapraz solma için özel dinleyici ile SlidingPaneLayout kullanabilirsiniz. onFinishInflate içinde

<com.sqisland.android.CrossFadeSlidingPaneLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/sliding_pane_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <FrameLayout 
     android:layout_width="240dp" 
     android:layout_height="match_parent" 
     android:background="@color/purple"> 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:text="@string/full"/> 
    <TextView 
     android:layout_width="64dp" 
     android:layout_height="match_parent" 
     android:background="@color/blue" 
     android:text="@string/partial"/> 
    </FrameLayout> 
    <TextView 
     android:layout_width="400dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:layout_marginLeft="64dp" 
     android:background="@color/light_blue" 
     android:text="@string/pane_2"/> 
</com.sqisland.android.CrossFadeSlidingPaneLayout> 

Alt Sınıf SlidingPaneLayout kısmi ve tam bölmeleri bulmak: Ayrıca

private SimplePanelSlideListener crossFadeListener 
    = new SimplePanelSlideListener() { 
    public void onPanelSlide(View panel, float slideOffset) { 
    super.onPanelSlide(panel, slideOffset); 
    if (partialView == null || fullView == null) { 
     return; 
    } 

    partialView.setVisibility(isOpen() ? View.GONE : VISIBLE); 
    partialView.setAlpha(1 - slideOffset); 
    fullView.setAlpha(slideOffset); 
    } 
}; 

gizlemek:

protected void onFinishInflate() { 
    super.onFinishInflate(); 

    if (getChildCount() < 1) { 
    return; 
    } 

    View panel = getChildAt(0); 
    if (!(panel instanceof ViewGroup)) { 
    return; 
    } 

    ViewGroup viewGroup = (ViewGroup) panel; 
    if (viewGroup.getChildCount() != 2) { 
    return; 
    } 
    fullView = viewGroup.getChildAt(0); 
    partialView = viewGroup.getChildAt(1); 

    super.setPanelSlideListener(crossFadeListener); 
} 

değiştirme bir dinleyici tam bölmede ve kısmi bölmesinin alfa düzen açıldığında kısmi bölme.

protected void onLayout(
    boolean changed, int l, int t, int r, int b) { 
    super.onLayout(changed, l, t, r, b); 

    if (partialView != null) { 
    partialView.setVisibility(isOpen() ? View.GONE : VISIBLE); 
    } 
} 

diğer bilgiler: http://blog.sqisland.com/2015/01/partial-slidingpanelayout.html

+0

Bu cevabı takdir ediyorum. Blog bana tam olarak nasıl uyguladıklarına yardımcı oldu. Teşekkür –

1

(bu kütüphaneden Kullanım MiniDrawer) bu https://github.com/mikepenz/MaterialDrawer

için harika bir kütüphane

+0

o proje @chiuki çok Android Studio içindir ve seni bana yardım edin ll böylece Tutulma bunu uygulamak ister misin? –

+0

@VaishaliSutariya Eclipse Android Geliştirme kullanımdan kaldırıldı. Bu yüzden Karanlık tarafa gel @VaishaliSutariya Android Studio –

+0

http://developer.android.com/sdk/installing/migrate.html –