我使用的材料设计滑动片(smartTabLayout),在这里:https://github.com/ogaclejapan/SmartTabLayout当我向左扫滑动标签左侧导航抽屉打开了
而且,材料设计方导航抽屉(Android的驻留菜单),在这里:https://github.com/SpecialCyCi/AndroidResideMenu
我面临的问题是:当我从刷卡任何标签的左侧,导航抽屉打开,但它是好的,当我向右滑动。
下面是代码:
MainActivity.java:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private static final String TAG = "MainActivity";
private SectionsPageAdapter sectionsPageAdapter;
private ViewPager viewPager;
Toolbar toolbar;
ResideMenu resideMenu;
SmartTabLayout smartTabLayout;
private MainActivity mContext;
private ResideMenuItem equalizer;
private ResideMenuItem ringtonemaker;
private ResideMenuItem identifysong;
private ResideMenuItem themes;
private ResideMenuItem rateus;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext = MainActivity.this;
setUpMenu();
toolbar = (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
sectionsPageAdapter = new SectionsPageAdapter(getSupportFragmentManager());
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
smartTabLayout = (SmartTabLayout) findViewById(R.id.viewpagertab);
smartTabLayout.setViewPager(viewPager);
}
private void setupViewPager(ViewPager viewPager) {
SectionsPageAdapter adapter = new SectionsPageAdapter(getSupportFragmentManager());
adapter.addFragment(new Albums(), "Albums");
adapter.addFragment(new Artists(), "Artists");
adapter.addFragment(new Songs(), "Songs");
adapter.addFragment(new Playlists(), "Playlists");
adapter.addFragment(new Genres(), "Genres");
adapter.addFragment(new My_Files(), "My Files");
viewPager.setAdapter(adapter);
viewPager.setPageTransformer(true, new CubeInTransformer());
}
private void setUpMenu() {
// attach to current activity;
resideMenu = new ResideMenu(this);
resideMenu.setBackground(R.drawable.city);
resideMenu.attachToActivity(this);
//valid scale factor is between 0.0f and 1.0f. leftmenu'width is 150dip.
resideMenu.setScaleValue(0.6f);
// create menu items;
equalizer = new ResideMenuItem(this, R.drawable.city, "Equalizer");
ringtonemaker = new ResideMenuItem(this, R.drawable.city, "Ringtone Maker");
identifysong = new ResideMenuItem(this, R.drawable.city, "Identify Song");
themes = new ResideMenuItem(this, R.drawable.city, "Theme");
rateus = new ResideMenuItem(this, R.drawable.city, "Rate us");
equalizer.setOnClickListener(this);
ringtonemaker.setOnClickListener(this);
identifysong.setOnClickListener(this);
themes.setOnClickListener(this);
rateus.setOnClickListener(this);
resideMenu.addMenuItem(equalizer, ResideMenu.DIRECTION_LEFT);
resideMenu.addMenuItem(ringtonemaker, ResideMenu.DIRECTION_LEFT);
resideMenu.addMenuItem(identifysong, ResideMenu.DIRECTION_LEFT);
resideMenu.addMenuItem(themes, ResideMenu.DIRECTION_LEFT);
resideMenu.addMenuItem(rateus, ResideMenu.DIRECTION_LEFT);
// You can disable a direction by setting ->
resideMenu.setSwipeDirectionDisable(ResideMenu.DIRECTION_RIGHT);
}
@Override
public void onClick(View view) {
}
}
适配器滑动选项卡:
class SectionsPageAdapter extends FragmentPagerAdapter {
private final List<Fragment> FragmentList = new ArrayList<>();
private final List<String> FragmentTitleList = new ArrayList<>();
public void addFragment(Fragment fragment, String Title){
FragmentList.add(fragment);
FragmentTitleList.add(Title);
}
public SectionsPageAdapter(FragmentManager fm) {
super(fm);
}
@Override
public CharSequence getPageTitle(int position) {
return FragmentTitleList.get(position);
}
@Override
public Fragment getItem(int position) {
return FragmentList.get(position);
}
@Override
public int getCount() {
return FragmentList.size();
}
}
activity_main.xml中:
<RelativeLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/city"
tools:context="com.musicplayer.musicana.MainActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="30dp"
android:title="Musicana"
app:titleTextColor="#ffffff">
</android.support.v7.widget.Toolbar>
<com.ogaclejapan.smarttablayout.SmartTabLayout
android:id="@+id/viewpagertab"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_below="@+id/toolbar"
app:stl_indicatorAlwaysInCenter="false"
app:stl_indicatorWithoutPadding="false"
app:stl_indicatorInFront="false"
app:stl_indicatorInterpolation="smart"
app:stl_indicatorGravity="center"
app:stl_indicatorColor="#40C4FF"
app:stl_indicatorThickness="30dp"
app:stl_indicatorWidth="110dp"
app:stl_indicatorCornerRadius="10dp"
app:stl_overlineColor="#4D000000"
app:stl_overlineThickness="0dp"
app:stl_underlineColor="#ffffff"
app:stl_underlineThickness="0dp"
app:stl_dividerColor="#ffffff"
app:stl_dividerThickness="0dp"
app:stl_defaultTabBackground="?attr/selectableItemBackground"
app:stl_defaultTabTextAllCaps="false"
app:stl_defaultTabTextColor="#ffffff"
app:stl_defaultTabTextSize="16sp"
app:stl_defaultTabTextHorizontalPadding="30dp"
app:stl_defaultTabTextMinWidth="0dp"
app:stl_distributeEvenly="false"
app:stl_clickable="true"
app:stl_titleOffset="24dp"
app:stl_drawDecorationAfterTab="false"
/>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/viewpagertab"
/>
</RelativeLayout>
可能这是你在找什么? 'resideMenu.addIgnoredView(viewPager);' –
不,我想这一点。这只是阻止整个viewpager访问侧导航抽屉。当我向左滑动第一个标签页时,我想打开侧导航器抽屉。不管怎么说,感谢您的帮助:) –
你可以尝试像,当你在viewpager到达第一个片段,然后取出ignoredView,当妳在其他页面,Viewpager添加到忽略视图。 –