2016-12-24 1 views
0

Ich mache eine App, bei der die Aktivität dieses Layout hat (was ich von einer Anleitung bekam) und es ist perfekt, weil das genau das ist, was ich wollte. Aber da ich keine Daten darin anzeigen konnte - wie Sie mit der Recycleransicht in der Layoutdatei sehen können.Der Inhalt wird nicht angezeigt, wenn die Recycler-Ansicht unterhalb von AppBarLayout liegt.

Hier ist das Layout

<android.support.v4.widget.DrawerLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:id="@+id/drawer" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true"> 

<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

<android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

<android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|enterAlways" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

</android.support.design.widget.AppBarLayout> 

<android.support.v7.widget.RecyclerView 
     android:id="@+id/recycler_view" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:scrollbars="vertical" /> 

<android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 


</android.support.design.widget.CoordinatorLayout> 

<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" 
    app:headerLayout="@layout/navheader" 
    app:menu="@menu/menu_navigation" /> 

Hier wird die Aktivität ist, die alles läuft:

import android.support.design.widget.NavigationView; 
    import android.support.v4.widget.DrawerLayout; 
    import android.support.v7.app.ActionBar; 
    import android.support.v7.app.AppCompatActivity; 
    import android.os.Bundle; 
    import android.support.v7.widget.DefaultItemAnimator; 
    import android.support.v7.widget.LinearLayoutManager; 
    import android.support.v7.widget.RecyclerView; 
    import android.support.v7.widget.Toolbar; 
    import android.view.MenuItem; 
    import java.util.ArrayList; 
    import java.util.List; 

    public class basics_list extends AppCompatActivity { 
     private DrawerLayout mDrawerLayout; 
     private List<Basic> basicList = new ArrayList<>(); 
     private RecyclerView recyclerView; 
     private BasicsAdapter mAdapter; 
     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setTitle(R.string.basics_list_name); 
      setContentView(R.layout.activity_basics_list); 

      // Adding Toolbar to Main screen 

      Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
      setSupportActionBar(toolbar); 


      // set recycler view 

      recyclerView = (RecyclerView) findViewById(R.id.recycler_view); 

      mAdapter = new BasicsAdapter(basicList); 
      final RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext()); 
      recyclerView.setLayoutManager(mLayoutManager); 
      recyclerView.setItemAnimator(new DefaultItemAnimator()); 
      recyclerView.setAdapter(mAdapter); 

      prepareBasicsData(); 

      // Create Navigation drawer and inflate layout 
      NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
      mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer); 

    // Adding menu icon to Toolbar 
      ActionBar supportActionBar = getSupportActionBar(); 
      if (supportActionBar != null) { 
       supportActionBar.setHomeAsUpIndicator(R.drawable.ic_menu_white_24dp); 
       supportActionBar.setDisplayHomeAsUpEnabled(true); 
      } 

    // Set behavior of Navigation drawer 
      navigationView.setNavigationItemSelectedListener(
        new NavigationView.OnNavigationItemSelectedListener() { 
         // This method will trigger on item Click of navigation menu 
         @Override 
         public boolean onNavigationItemSelected(MenuItem menuItem) { 
          // Set item in checked state 
          menuItem.setChecked(true); 
          // TODO: handle navigation 
          // Closing drawer on item click 
          mDrawerLayout.closeDrawers(); 
          return true; 
         } 
        }); 


     } 

     private void prepareBasicsData() { 
      Basic basic = new Basic("one"); 
      basicList.add(basic); 

      basic = new Basic("two"); 
      basicList.add(basic); 

      basic = new Basic("three"); 
      basicList.add(basic); 

      mAdapter.notifyDataSetChanged(); 
     } 
    } 
+0

Benötigen Sie ViewPager? Wenn nicht, dann entfernen Sie ViewPager aus dem Layout. – MdFazlaRabbiOpu

Antwort

0

Versuchen das Hinzufügen einer layout_behavior zu Ihrem RecyclerView

<android.support.v7.widget.RecyclerView 
     android:id="@+id/recycler_view" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     android:scrollbars="vertical" /> 

Siehe this Frage für mehr Informationen zum Platzieren Ansichten innerhalb CoordinatorLayouts

+0

Das hat es geschafft! Vielen Dank! –

Verwandte Themen