0

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.

Antwort

0

Ich weiß nicht, ob ich Ihre Frage bekam, aber ich werde versuchen, awnswer

Sie eine TabbedActivity mit SwipeViews erstellen und sie hinzufügen, was Sie wollen. Sie müssen spezifischer sein mit wollen Sie wirklich wollen von Navigation Drawer.

ODER

Sie können eine Navigation Drawer erstellen und eine ViewPager, um es hinzuzufügen, so funktioniert es Sie wollen.

hatte ich das gleiche Problem wie du so habe ich die erste Option :)

, wenn Sie nicht wissen, wie ein ViewPager nur sagen, hinzuzufügen, ich versuche, können Sie mit, dass :)

+0

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 –

+0

verwenden das ist meine App: http://imgur.com/EQAtK4C Ich habe TabbedActivity und ihnen habe ich die Dinge hinzugefügt: D –

+0

Ok, können Sie mir sagen, wie ich Kann ich meinen Code ändern, um das Ergebnis zu erhalten? –