Neelay Srivastava
Neelay Srivastava

Reputation: 100

How to set the left right padding for a tab

I am trying to make a tab when swiped gives a padding between two fragment like thisenter image description here

I am making this with a support lib compile 'com.astuetz:pagerslidingtabstrip:1.0.1' My java code

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import com.astuetz.PagerSlidingTabStrip;



public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ViewPager pager = (ViewPager) findViewById(R.id.pager);
    pager.setAdapter(new TestAdapter(getSupportFragmentManager()));
    PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
    tabs.setViewPager(pager);
}
}
class TestAdapter extends FragmentPagerAdapter {
public TestAdapter (FragmentManager manager) {
    super(manager);
}

@Override
public Fragment getItem(int i) {
    Fragment fragment=null;
    if (i==0){
        fragment=new One();
    }
    if (i==1){
        fragment=new Two();
    }
    if (i==2){
        fragment=new Three();
    }
    return fragment;
}

@Override
public int getCount() {
    return 3;
}
@Override
public CharSequence getPageTitle(int position) {
    String title = new String();
    if (position==0){
        return "tab1";
    }

    if (position==1){
        return "tab2";
    }
    if (position==2){
        return "tab3";
    }
    return title;
}
}

I tried to set the padding in viewpager but it is not working then I tried to set pstsTabPaddingLeftRight but it is also not working my xml code

LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.astuetz.PagerSlidingTabStrip
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="48dip"
    app:pstsShouldExpand="true"
    app:pstsTextAllCaps="true"
    app:pstsScrollOffset="7dp"
    app:pstsIndicatorColor="@color/dem"
    app:pstsDividerPadding="10dp"
    app:pstsTabPaddingLeftRight="40dp"
    />
<android.support.v4.view.ViewPager
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/pager">

</android.support.v4.view.ViewPager>
</LinearLayout>

is there any other way to set the padding between any two tabs

Upvotes: 1

Views: 793

Answers (1)

capt.swag
capt.swag

Reputation: 10651

Since you are using ViewPager, the easiest way to achieve some space is to use setPageMargin() method of Viewpager, which in your case will be

ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setPageMargin(200);

//200 is value in pixel

There is also a method setPageMarginDrawable() sets a drawable that will be used to fill the margin between pages (Android documentation).

Upvotes: 2

Related Questions