0

こんにちは私はフィードアプリケーションを実装し、フラグメント内にナビゲーション・ドロワー、タブ・レイアウトおよびRecyclerviewを実装しようとしています。ここ引き出しのレイアウトが重なり合う|フラグメント内の完全なスペースをカバーする

を参照してくださいスクリーンショット:

Screenshot With out Drawer layout

Screenshot of app with Drawer layout

はここに私のコードです。

activity_main.xml

<LinearLayout 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/container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    tools:context="com.example.sirajm.bottomnav.MainActivity"> 

    <FrameLayout 
     android:id="@+id/content" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"> 

     <include 
      layout="@layout/content_main" 
      /> 

    </FrameLayout> 

    <android.support.design.widget.BottomNavigationView 
     android:id="@+id/navigation" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom" 
     android:background="?android:attr/windowBackground" 
     app:menu="@menu/navigation" /> 

content_main.xml

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" android:layout_width="match_parent" 
     android:id="@+id/content_panel" 
     android:layout_height="match_parent"> 


</LinearLayout> 

fragment_feed.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:orientation="vertical"> 

<android.support.v4.widget.DrawerLayout 
    android:id="@+id/drawer_layout" 
    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" 
    app:layout_scrollFlags="scroll|enterAlways" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <!-- TODO: Update blank fragment layout --> 
    <android.support.design.widget.AppBarLayout 
     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/AppTheme.PopupOverlay" /> 
     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@color/colorPrimary" 
      app:tabGravity="fill" 
      app:tabMode="fixed"/> 

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

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewPager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_scrollFlags="scroll|enterAlways" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

    <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/nav_header_main" 
     app:menu="@menu/activity_main_drawer" > 

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


</android.support.v4.widget.DrawerLayout> 

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

frament_one.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#FFFFFF"> 


    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recyclerView" 
     android:layout_width="match_parent" 
     android:layout_height="fill_parent" 
     android:layout_above="@+id/navigation" /> 

</RelativeLayout> 

MainActivity.java

public class MainActivity extends AppCompatActivity implements FeedFragment.OnFragmentInteractionListener{ 

    // private TextView mTextMessage; 

    private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener 
      = new BottomNavigationView.OnNavigationItemSelectedListener() { 

     @Override 
     public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
      switch (item.getItemId()) { 
       case R.id.navigation_home: 
        // mTextMessage.setText(R.string.title_home); 
        Toast.makeText(MainActivity.this, "Home", Toast.LENGTH_SHORT).show(); 
        return true; 
       case R.id.navigation_dashboard: 
        // mTextMessage.setText(R.string.title_dashboard); 
        Toast.makeText(MainActivity.this, "Dashboard", Toast.LENGTH_SHORT).show(); 
        return true; 
       case R.id.navigation_notifications: 
        Toast.makeText(MainActivity.this, "Notification", Toast.LENGTH_SHORT).show(); 
        // mTextMessage.setText(R.string.title_notifications); 
        return true; 
      } 
      return false; 
     } 

    }; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     getSupportFragmentManager() 
       .beginTransaction() 
       .add(R.id.content_panel, new FeedFragment()) 
       .commit(); 

     // mTextMessage = (TextView) findViewById(R.id.mtext); 
     BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation); 
     navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener); 
    } 

    @Override 
    public void onFragmentInteraction(Uri uri) { 

    } 
} 

FeedFragment.java

public class FeedFragment extends Fragment implements NavigationView.OnNavigationItemSelectedListener { 

    private List<Fragment> fragmentList = new ArrayList<>(); 
    private List<String> titleList = new ArrayList<>(); 
    private View rootView; 
    private ViewPager viewPager; 
    private TextTabsAdapter adapter; 
    private TabLayout tabLayout; 

    private OnFragmentInteractionListener mListener; 

    public FeedFragment() { 
     // Required empty public constructor 
    } 




    private void initialise() { 
     Toolbar toolbar = (Toolbar) rootView.findViewById(R.id.toolbar); 
     toolbar.setTitle("Simple Tabs Example"); 
     DrawerLayout drawer = (DrawerLayout) rootView.findViewById(R.id.drawer_layout); 

     ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
       getActivity(), drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
     drawer.setDrawerListener(toggle); 
     drawer.setBackgroundColor(getResources().getColor(R.color.whiteColor)); 
     toggle.syncState(); 

     NavigationView navigationView = (NavigationView) rootView.findViewById(R.id.nav_view); 
     navigationView.setNavigationItemSelectedListener(this); 
     viewPager = (ViewPager) rootView.findViewById(R.id.viewPager); 
     tabLayout = (TabLayout) rootView.findViewById(R.id.tabs); 
    } 
    private void prepareDataResource() { 

     addData(new FragmentOne(), "ONE"); 
     addData(new FragmentTwo(), "TWO"); 
     // addData(new FragmentThree(), "THREE"); 
    } 

    private void addData(Fragment fragment, String title) { 
     fragmentList.add(fragment); 
     titleList.add(title); 
    } 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     rootView = inflater.inflate(R.layout.fragment_feed, container, false); 
     initialise(); 
     prepareDataResource(); 
     adapter = new TextTabsAdapter(getActivity().getSupportFragmentManager(), fragmentList, titleList); 

     // Bind Adapter to ViewPager. 
     viewPager.setAdapter(adapter); 

     // Link ViewPager and TabLayout 
     tabLayout.setupWithViewPager(viewPager); 

     return rootView; 
    } 

    @Override 
    public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
     return false; 
    } 


    public interface OnFragmentInteractionListener { 
     // TODO: Update argument type and name 
     void onFragmentInteraction(Uri uri); 
    } 
} 

FragmentOne.java

すべてが正常に動作しない場合はDrawerlayoutとナビゲーションドロワーを追加するが、ときにされ
class FragmentOne extends Fragment { 

    private RecyclerView mrecyclerview; 
    private FeedsAdapter feedadapter; 
    View rootView; 



    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     rootView = inflater.inflate(R.layout.fragment_one, container, false); 
     mrecyclerview = (RecyclerView) rootView.findViewById(R.id.recyclerView); 
     mrecyclerview.setLayoutManager(new LinearLayoutManager(getContext())); 

     populate(); 
     return rootView; 
    } 

public void populate(){ 
     final ProgressDialog progressDialog = new ProgressDialog(getContext()); 
     progressDialog.setMessage("Loading Please wait"); 
     progressDialog.show(); 
     Call<FeedList> call = Apis.getApi().getFeedLists(101,"param"); 
     call.enqueue(new Callback<FeedList>() { 
      @Override 
      public void onResponse(Call<FeedList> call, Response<FeedList> response) { 
       progressDialog.dismiss(); 
       FeedList feedsdata = response.body(); 
       Log.i(TAG, "onResponseFeeds: "+feedsdata.getFeeds()); 
       FeedsStore.setFeedLists(feedsdata.getFeeds()); 
       feedadapter = new FeedsAdapter(feedsdata.getFeeds(),getContext()); 
       mrecyclerview.setAdapter(feedadapter); 


      } 
} 

私はFeedFragmentにDrawerLayoutを含め、完全なスペースを割り当てます。私はどこに間違って行くのではない。子供として親とコーディネーターレイアウトとして引き出しのレイアウトを作成することで解決

答えて

0

この1

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout 
    android:id="@+id/drawer_layout" 
    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" 
    app:layout_scrollFlags="scroll|enterAlways" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:orientation="vertical"> 



    <!-- TODO: Update blank fragment layout --> 
    <android.support.design.widget.AppBarLayout 
     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/AppTheme.PopupOverlay" /> 
     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@color/colorPrimary" 
      app:tabGravity="fill" 
      app:tabMode="fixed"/> 

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

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewPager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_scrollFlags="scroll|enterAlways" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

    <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/nav_header_main" 
     app:menu="@menu/activity_main_drawer" > 

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


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

</android.support.v4.widget.DrawerLayout> 
関連する問題