Ich entwickle ein benutzerdefiniertes Layout in Android, ich muss eine Navigationsleiste mit Swipe-Ansichten implementieren.Navigationsschublade mit Swipe-Ansichten
Ich muss den Code verwenden, der standardmäßig von Android Studio generiert wird, und die Swipe-Ansichten implementieren.
Ich brauche das auf einer einzelnen Seite ist es eine Navigationsschublade mit verschiedenen Menü, kann ich auf die andere Seite per Menü im Menü oder schief zwischen den Seiten wechseln durch Streichen mit dem Finger auf dem Bildschirm (ich brauche nicht das Hauptmenü mit den Laschen, ich brauche nur zwischen den Seiten)
Dies ist mein Quellcode zu bewegen, habe ich versuchen, beide Lösung zu implementieren:
public class Home extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
private SectionsPagerAdapter mSectionsPagerAdapter;
private ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.container);
mViewPager.setAdapter(mSectionsPagerAdapter);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
public static class PlaceholderFragment extends Fragment {
private static final String ARG_SECTION_NUMBER = "section_number";
public PlaceholderFragment() {}
public static PlaceholderFragment newInstance(int sectionNumber) {
PlaceholderFragment fragment = new PlaceholderFragment();
Bundle args = new Bundle();
args.putInt(ARG_SECTION_NUMBER, sectionNumber);
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
return rootView;
}
}
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment (defined as a static inner class below).
return PlaceholderFragment.newInstance(position + 1);
}
@Override
public int getCount() {
// Show 3 total pages.
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "SECTION 1";
case 1:
return "SECTION 2";
case 2:
return "SECTION 3";
}
return null;
}
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.qrcode) {
Intent i = new Intent(this, QRCode.class);
startActivity(i);
return true;
}
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.nav_qrcode) {
Intent i = new Intent(this, QRCode.class);
startActivity(i);
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
} Diese
ist mein Grund Layout:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
layout="@layout/app_bar_home"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
android:background="#B59154"
app:itemTextColor="#ffffff"
app:menu="@menu/activity_main_drawer" />
</android.support.v4.widget.DrawerLayout>
Ich verstehe nicht, wie ich ein einzigartiges Layout mit dieser Funktion erstellen kann.
zu helfen Entschuldigung, ich muss eine Navigationsleiste mit SwipeViews erstellen. In derselben "Aktivität" muss ich die Navigationsleiste mit dem Kontextmenu haben, über das ich die Wettbewerbsinformationen einsehen kann. Eine weitere Möglichkeit zum Ändern der Seiten der SwipeView und der in der Aktivität enthaltenen Verwendung. So, um meine Inhalte zu wählen, kann ich NavigationDrawer oder die SwipeView –
verwenden das ist meine App: http://imgur.com/EQAtK4C Ich habe TabbedActivity und ihnen habe ich die Dinge hinzugefügt: D –
Ok, können Sie mir sagen, wie ich Kann ich meinen Code ändern, um das Ergebnis zu erhalten? –