Material 風格的ViewPager庫:MaterialViewPager

jopen 9年前發布 | 44K 次閱讀 Android開發 移動開發 MaterialViewPager

介紹:

易于使用的Material 風格的ViewPager庫

運行效果:

使用說明:

APK下載 : Link

從實際效果來看,還有改進的空間

油Tube 演示視頻: 油Tube Link

將MaterialViewPager添加到activity的布局中 

<com.github.florent37.materialviewpager.MaterialViewPager
    android:id="@+id/materialViewPager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:viewpager_logo="@layout/header_logo"
    app:viewpager_logoMarginTop="100dp"
    app:viewpager_color="@color/colorPrimary"
    app:viewpager_headerHeight="200dp"
    app:viewpager_hideLogoWithFade="true"
    app:viewpager_hideToolbarAndTitle="true"
    app:viewpager_enableToolbarElevation="true"
    />

這樣就可以在 Android Studio 看到預覽效果:

Material 特性的ViewPager庫:MaterialViewPager

 

像普通的view一樣通過findView獲得:

public class MainActivity extends ActionBarActivity {

    private MaterialViewPager mViewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mViewPager = (MaterialViewPager) findViewById(R.id.materialViewPager);
    }
}

自定義

首先是顏色和高度

<com.github.florent37.materialviewpager.MaterialViewPager
        android:id="@+id/materialViewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        ...
        app:viewpager_color="@color/colorPrimary"
        app:viewpager_headerHeight="200dp"
        ...
        />

設置logo

<com.github.florent37.materialviewpager.MaterialViewPager
        ...
        app:viewpager_logo="@layout/header_logo" <-- look custom logo layout
        app:viewpager_logoMarginTop="100dp" <-- look at the preview
        ...
        />

Titlebar Logo

687474703a2f2f73686172652e676966796f75747562652e636f6d2f796762716e412e676966.gif

logo的高度必須是

  • layout_height="@dimen/materialviewpager_logoHeight"

header_logo.xml

<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/logo_white"
    android:layout_width="200dp"
    android:layout_height="@dimen/materialviewpager_logoHeight"
    android:fitsSystemWindows="true"
    android:adjustViewBounds="true"
    android:layout_centerHorizontal="true"
    android:src="@drawable/logo_white" />
<com.github.florent37.materialviewpager.MaterialViewPager`
        ...
        app:viewpager_hideLogoWithFade="false"
        ...
        />

Fading Logo

Material 特性的ViewPager庫:MaterialViewPager

header_logo.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="80dp"
    android:layout_height="80dp"
    android:layout_centerHorizontal="true"
    android:background="@drawable/circle">

    <ImageView
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:fitsSystemWindows="true"
        android:adjustViewBounds="true"
        android:layout_gravity="center"
        android:src="@drawable/flying" />
</FrameLayout>
<com.github.florent37.materialviewpager.MaterialViewPager`
        ...        app:viewpager_hideLogoWithFade="true"
        ...
        />

oolbar 動畫

隱藏Logo 和 Toolbar

687474703a2f2f73686172652e676966796f75747562652e636f6d2f793556384a582e676966.gif

<com.github.florent37.materialviewpager.MaterialViewPager`
        ...        app:hideToolbarAndTitle="true"
        ...
        />

Sticky Toolbar

687474703a2f2f73686172652e676966796f75747562652e636f6d2f796f326f4a6e2e676966.gif

<com.github.florent37.materialviewpager.MaterialViewPager`
        ...        app:hideToolbarAndTitle="false"
        ...
        />

自定義 Tab Bar

你可以設置自己的tab bar,默認提供了兩種實現:

標準的

687474703a2f2f73686172652e676966796f75747562652e636f6d2f4b646e6f5a582e676966.gif

<com.github.florent37.materialviewpager.MaterialViewPager`
        ...        app:viewpager_pagerTitleStrip="@layout/material_view_pager_pagertitlestrip_standard"
        ...
        />

News Stand

Material 特性的ViewPager庫:MaterialViewPager

<com.github.florent37.materialviewpager.MaterialViewPager`
        ...        app:viewpager_pagerTitleStrip="@layout/material_view_pager_pagertitlestrip_newstand"
        ...
        />

或者自己創建 Tab Bar

使用 PagerSlidingTabStrip

my_tabs.xml

<com.astuetz.PagerSlidingTabStrip    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@id/materialviewpager_pagerTitleStrip"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:pstsPaddingMiddle="true"
    app:pstsDividerPadding="20dp"
    app:pstsIndicatorColor="#FFF"
    app:pstsIndicatorHeight="2dp"
    app:pstsShouldExpand="true"
    app:pstsTabPaddingLeftRight="10dp"
    app:pstsTextAllCaps="true"
    tools:background="#A333"
     />

別忘了加上 id="@id/materialviewpager_pagerTitleStrip"

<com.github.florent37.materialviewpager.MaterialViewPager`
        ...        app:viewpager_pagerTitleStrip="@layout/my_tabs"
        ...
        />

項目主頁:http://www.baiduhome.net/lib/view/home/1434425934645

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!