android - Astuetz's PagerSlidingTabStrip library still doesn't slide the tabStrip -
android - Astuetz's PagerSlidingTabStrip library still doesn't slide the tabStrip -
i've added pagerslidingtabstrip library project, next guide strip under tabs doesn't slide (i'm referring have can see in google play app). here mainactivity:
mviewpager = (viewpager) findviewbyid(r.id.pager); mviewpager.setadapter(mcollectionpageradapter); pagerslidingtabstrip tabs = (pagerslidingtabstrip) findviewbyid(r.id.tabs); tabs.setviewpager(mviewpager); mviewpager.setonpagechangelistener(new viewpager.simpleonpagechangelistener() { @override public void onpageselected(int position) { actionbar.setselectednavigationitem(position); } }); (int = 0; < mcollectionpageradapter.getcount(); i++) { actionbar.addtab(actionbar.newtab() .settext(mcollectionpageradapter.getpagetitle(i)) .settablistener(this)); }
edit:
activity_main.xml:
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <com.astuetz.pagerslidingtabstrip android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="48dip"/> <android.support.v4.view.viewpager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="wrap_content" tools:context=".mainactivity" /> </relativelayout>
mainactivity:
public class mainactivity extends fragmentactivity implements actionbar.tablistener, android.app.actionbar.tablistener { collectionpageradapter mcollectionpageradapter; viewpager mviewpager; sharedpreferences mprefs; final string welcomescreenshownpref = "welcomescreenshown"; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); requestwindowfeature(window.feature_indeterminate_progress); setprogressbarindeterminatevisibility(true); setprogressbarindeterminatevisibility(false); setcontentview(r.layout.activity_main); mcollectionpageradapter = new collectionpageradapter( getsupportfragmentmanager()); final android.app.actionbar actionbar = getactionbar(); assert actionbar != null; actionbar.setdisplayshowtitleenabled(true); actionbar.setdisplayuselogoenabled(false); actionbar.sethomebuttonenabled(false); actionbar.seticon(r.drawable.ic_action_icon3); actionbar.settitle(r.string.app_name2); actionbar.setnavigationmode(actionbar.navigation_mode_tabs); mviewpager = (viewpager) findviewbyid(r.id.pager); mviewpager.setadapter(mcollectionpageradapter); pagerslidingtabstrip tabs = (pagerslidingtabstrip) findviewbyid(r.id.tabs); tabs.setviewpager(mviewpager); }
edit2 tabs_background.xml:
<item android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_example" /> <item android:state_focused="true" android:drawable="@drawable/tab_selected_focused_example"/> <item android:drawable="@color/tab_color"/>
mainactivity:
actionbar.setdisplayshowtitleenabled(true); actionbar.setdisplayuselogoenabled(false); actionbar.sethomebuttonenabled(false); actionbar.seticon(r.drawable.ic_action_icon3); actionbar.settitle(r.string.app_name2); mviewpager = (viewpager) findviewbyid(r.id.pager); mviewpager.setadapter(mcollectionpageradapter); pagerslidingtabstrip tabs = (pagerslidingtabstrip) findviewbyid(r.id.tabs); tabs.setviewpager(mviewpager); tabs.setindicatorcolor(android.r.color.white);
activity_main.xml:
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <com.astuetz.pagerslidingtabstrip android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="48dip" app:pstsindicatorcolor="@android:color/white" app:pstsunderlinecolor="@color/tab_color" app:pstsdividercolor="@color/tab_color" app:pststabbackground="@drawable/tabs_background"/> <android.support.v4.view.viewpager android:id="@+id/pager" android:layout_below="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" tools:context=".mainactivity" /> </relativelayout>
if want utilize pagerslidingtabstrip
don't need add together tabs actionbar. cutting code to:
mviewpager = (viewpager) findviewbyid(r.id.pager); mviewpager.setadapter(mcollectionpageradapter); pagerslidingtabstrip tabs = (pagerslidingtabstrip) findviewbyid(r.id.tabs); tabs.setviewpager(mviewpager);
the library automatically adds tabs actionbar, gets tabs texts method:
@override public charsequence getpagetitle(int position) { homecoming titles[position]; }
edit:
add android:layout_below
property viewpager
, should work:
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <com.astuetz.pagerslidingtabstrip android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="48dip"/> <android.support.v4.view.viewpager android:id="@+id/pager" android:layout_below="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" tools:context=".mainactivity" /> </relativelayout>
edit2:
firstly, create selector
in drawable folder, called tabs_background.xml
tabs background:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@color/your_pressed_red_color" /> <item android:state_focused="true" android:drawable="@color/your_focused_red_color"/> <item android:drawable="@color/your_red_color"/> </selector>
then can customize tabs, setting properties, can see here, customization:
<com.astuetz.pagerslidingtabstrip android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="48dip" app:pstsindicatorcolor="@android:color/white" app:pstsunderlinecolor="@color/your_red_color" app:pstsdividercolor="@color/your_red_color" app:pststabbackground="@drawable/tabs_background">
don't forget add together line parent relativelayout xmlns:app="http://schemas.android.com/apk/res-auto"
and finally, set text color, programmatically:
tabs.settextcolor(android.r.color.white);
android tabs pagerslidingtabstrip
Comments
Post a Comment