我使用的材料設計滑動片(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添加到忽略視圖。 –