Skip to content

An Android library supports sticking the navigator on the top when ItemView scrolls in Viewpager.

License

Notifications You must be signed in to change notification settings

tulongchao/StickyHeaderViewPager

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StickyHeaderViewPager

An Android library supports sticking the navigator on the top when ItemView scrolls in Viewpager.

github.com/w446108264/StickHeaderLayout 」other library , more freely defined as you need

Art

Art

Features

  • Support RecyclerView, ScrollView, WebView, ListView.
  • Scrolling, with smooth scrolling fling, will not be interrupt when ticking the navigator.
  • Don't need to preset the height value,all is automatic.

Samples

You can download a sample APK

Gradle Dependency

--

Usage

simple to your proejct

Layout

howerver, StickHeaderViewPager must have two childViews,frist childView will scroll with viewpager,second will tick on the top.

  <com.library.StickHeaderViewPager
        android:id="@+id/shvp_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/toolbar">
        
        <ImageView
            android:id="@+id/iv_headerImage"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:src="@drawable/bg_simple_header"
            android:scaleType="centerInside"/>

        <TextView
            android:id="@+id/tv_stick"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:gravity="center_vertical"
            android:paddingLeft="10dp"
            android:background="#657232"
            android:text="This is a simple demo!"
            />  
 </com.library.StickHeaderViewPager>

Fragment

and then create a fragment which extends ScrollFragment.it's easy. if you need a ListView ,please make your fragment extends StickHeaderListFragment,if you want to create a webView ,just extends StickHeaderWebViewFragment. even dot't need to inflate view by yourself. for a example.

  public class ListViewSimpleFragment extends StickHeaderListFragment {

    public static ListViewSimpleFragment newInstance() {
        ListViewSimpleFragment fragment = new ListViewSimpleFragment();
        return fragment;
    }

    public static ListViewSimpleFragment newInstance(String title) {
        ListViewSimpleFragment fragment = new ListViewSimpleFragment();
        fragment.setTitle(title);
        return fragment;
    }

    @Override
    public void bindData() {
        setAdapter();
    }

    public void setAdapter() {
        if (getActivity() == null) return;

        int size = 100;
        String[] stringArray = new String[size];
        for (int i = 0; i < size; ++i) {
            stringArray[i] = ""+i;
        }

        ArrayAdapter<String> adapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, stringArray);

        getScrollView().setAdapter(adapter);
    }
}

Activity

last step,init your StickHeaderViewPager with StickHeaderViewPagerBuilder.that's all. by the way,activity should extends FragmentActivity or AppCompatActivity.

  StickHeaderViewPagerBuilder.stickTo((StickHeaderViewPager) findViewById(R.id.shvp_content))
                .setFragmentManager(getSupportFragmentManager())
                .addScrollFragments(ListViewSimpleFragment.newInstance("ListView"))
                .notifyData();

Contact & Help

Please fell free to contact me if there is any problem when using the library.

Thanks

  • ParallaxHeaderViewPager

About

An Android library supports sticking the navigator on the top when ItemView scrolls in Viewpager.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%