2016-08-15 77 views
0

我使用了this並在標籤下放置了卡片視圖的回收站視圖。只有第一個標籤顯示其他人沒有的回收站視圖。 選項卡看起來不錯,第一個片段看起來不錯,但是當我嘗試滑動到其他選項卡時,片段不顯示。只有第一個片段顯示在標籤佈局下

我的代碼: 主要activty佈局:

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:paddingBottom="5dp" 
tools:context="codycoogan.equations.about_activity" 
android:orientation="vertical" 
> 

<include layout="@layout/tool_bar" 
    android:id="@+id/toolBar" 
    /> 
<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/viewPagerContainer" 
    /> 


</LinearLayout> 

對於具有tablayout和viewpager上述的FrameLayout佈局:

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

<android.support.design.widget.AppBarLayout android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
xmlns:android="http://schemas.android.com/apk/res/android"> 



    <android.support.design.widget.TabLayout 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:tabMode="fixed" 
     android:background="@color/colorPrimary" 
app:tabGravity="fill" 

     /> 


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

<android.support.v4.view.ViewPager 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:orientation="vertical" 
    android:id="@+id/pager" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    android:clickable="true" 

    /> 

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

設立tablayout和viewpager:

public class mainViewPagerFragment extends Fragment { 
private TabLayout tabLayout; 



@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    View view = inflater.inflate(R.layout.fragment_main_view_pager, container, false); 
    RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.favoritesRecycler); 

    ViewPager viewPager = (ViewPager)view.findViewById(R.id.pager); 
    setupViewPager(viewPager); 
    tabLayout = (TabLayout)view.findViewById(R.id.tabs); 
    tabLayout.setupWithViewPager(viewPager); 
    return recyclerView; 
} 

private void setupViewPager(ViewPager viewPager) { 
    ViewPageAdapter adapter = new ViewPageAdapter(getChildFragmentManager()); 
    adapter.addFragment(new RecyclerFragment(), "ONE"); 
    adapter.addFragment(new favoritesFragment(), "TWO"); 
    viewPager.setAdapter(adapter); 


} 



class ViewPageAdapter extends FragmentStatePagerAdapter { 
    private final List<Fragment> mFragmentList = new ArrayList<>(); 
    private final List<String> mFragmentTitleList = new ArrayList<>(); 

    public ViewPageAdapter(FragmentManager fragmentManager){ 
     super(fragmentManager); 

    } 

    @Override 
    public Fragment getItem(int position) { 

     return mFragmentList.get(position); 
    } 





    @Override 
    public int getCount() { 
     return mFragmentList.size(); 

    } 

    public void addFragment(Fragment fragment, String title) { 
     mFragmentList.add(fragment); 
     mFragmentTitleList.add(title); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 


     return mFragmentTitleList.get(position); 
    } 




} 

}

我的片段:

public class RecyclerFragment extends Fragment { //FOR GEOMETRY 
private Cursor cursor; 
private SQLiteDatabase db; 
private Vibrator vibrator; 

private int[] imageArray = { 

     R.mipmap.circle55, 
     R.mipmap.circle55, 
     R.mipmap.circle55, 
     R.mipmap.circle55, 
     R.mipmap.octagon55, 

}; 
private ArrayList<Integer> image = new ArrayList<>(); 

private ArrayList<String> names = new ArrayList<>(); 


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

    new listPop().execute(); 
    populateImageArray(); 
    vibrator = (Vibrator)getActivity().getSystemService(Context.VIBRATOR_SERVICE); 
    RecyclerView recyclerView = (RecyclerView) inflater.inflate(R.layout.recylcler_layout, container, false); 


    recylcerAdapter RecylcerAdapter = 
      new recylcerAdapter(image.toArray(new Integer[image.size()]), names.toArray(new String[names.size()])); 
    LinearLayoutManager manager = new LinearLayoutManager(getActivity()); 
    manager.canScrollVertically(); 
    recyclerView.setLayoutManager(manager); 
    recyclerView.setAdapter(RecylcerAdapter); 

    RecylcerAdapter.setListener(new recylcerAdapter.Listener() { 
     public void onClick(int position) { 
      vibrator.vibrate(50); 

      Intent intent = new Intent(getActivity(), EquationsActivity.class); 
      intent.putExtra(EquationsActivity.POSITION, position); 
      getActivity().startActivity(intent); 

     } 
    }); 

    return recyclerView; 
} 



private class listPop extends AsyncTask<Integer, Void, Boolean> { 


    @Override 
    protected Boolean doInBackground(Integer... equate) { 

     SQLiteOpenHelper databaseHelper = new DatabaseHelper(getActivity()); 
     try { 
      db = databaseHelper.getReadableDatabase(); 
      cursor = db.query("EQUATIONTABLE", new String[]{"_id", "NAME"}, null, null, 
        null, null, "SORTORDER ASC"); 

      cursor.moveToFirst(); 

      while (!cursor.isAfterLast()) { 
       names.add(cursor.getString(cursor.getColumnIndex("NAME"))); 
       cursor.moveToNext(); 
      } 

      return true; 
     } catch (SQLiteException e) { 
      e.printStackTrace(); 
      return false; 
     } finally { 
      cursor.close(); 
      db.close(); 
     } 
    } 


    @Override 
    protected void onPostExecute(Boolean success) { 
     checkFirstRun(); 

     if (!success) { 
      Toast toast = Toast.makeText(getActivity(), "Database Error", Toast.LENGTH_LONG); 
      toast.show(); 
     } 

    } 
} 
+0

請發表您的代碼 – amitairos

+0

我已經收集了大量的網站提供的代碼的異步任務的onPostExecute,它是對工作的罰款我,你可以請你發佈你的代碼,以便我們看看。 – AmanSinghal

+0

@amitairos我發佈了它 –

回答

0

我想通了,我的問題!問題是,你必須把下面的代碼下,我第一次跑OnCreateView

recylcerAdapter RecylcerAdapter = 
     new recylcerAdapter(image.toArray(new Integer[image.size()]), names.toArray(new String[names.size()])); 
LinearLayoutManager manager = new LinearLayoutManager(getActivity()); 
manager.canScrollVertically(); 
recyclerView.setLayoutManager(manager); 
recyclerView.setAdapter(RecylcerAdapter); 

RecylcerAdapter.setListener(new recylcerAdapter.Listener() { 
    public void onClick(int position) { 
     vibrator.vibrate(50); 

     Intent intent = new Intent(getActivity(), EquationsActivity.class); 
     intent.putExtra(EquationsActivity.POSITION, position); 
     getActivity().startActivity(intent); 

    } 
}); 
相關問題