0

我試圖在我的片段中顯示SwipeRefreshLayout。我用3個Tabs(片段)構建了一個TabLayout。在第一個裏面有一個RecyclerView。我試圖在CoreActivity中實現SwipeRefreshLayout,它可以工作。有什麼建議麼? TabLayour是否可以覆蓋SwipeRefreshLayout?SwipeRefresh不顯示在與RecyclerView片段

這裏的代碼:

CoreActivity.xml:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawer_layout" 
    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" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.latlo.firestore.CoreActivity"> 

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


     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar2" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="?attr/colorPrimary" 
      android:minHeight="?attr/actionBarSize" 
      app:layout_scrollFlags="scroll|enterAlways" /> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 



    </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_behavior="@string/appbar_scrolling_view_behavior" /> 


    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/floatingActionButton5" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:layout_gravity="top|left" 
     android:layout_margin="16dp" 
     android:background="@color/white" 
     android:backgroundTint="@color/white" 
     android:clickable="true" 
     android:src="@drawable/ic_add_black_24dp" 
     app:layout_anchor="@+id/viewpager" 
     app:layout_anchorGravity="bottom|right" /> 


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


<android.support.design.widget.NavigationView 
    android:id="@+id/menulaterale" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    app:headerLayout="@layout/drawer_top" 
    app:menu="@menu/drawer_menu"/> 


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

Announces_content_fragment.xml:

<RelativeLayout 
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:padding="16dp" 
android:background="?android:attr/selectableItemBackground" 
tools:context="chilor.lolmatch.AnnouncesContentFragment"> 

<ImageView 
    android:id="@+id/img" 
    android:layout_width="70dp" 
    android:layout_height="70dp" 
    tools:src="@drawable/diamond_v" 
    android:layout_below="@+id/queue_type" 
    android:layout_alignParentStart="true" /> 
<TextView 
    android:id="@+id/queue_type" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="16dp" 
    tools:text="ciao" 
    android:textAppearance="?attr/textAppearanceListItem" 
    android:textSize="20dp" 
    android:layout_marginStart="36dp" 
    android:layout_alignParentTop="true" 
    android:layout_toEndOf="@+id/img" /> 

<Button 
    android:id="@+id/button_reply" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Reply" 
    android:layout_alignBottom="@+id/img" 
    android:layout_alignParentEnd="true" 
    style="@style/Widget.AppCompat.Button.Borderless.Colored" 
    android:theme="@style/AppTheme.Button"/> 

<TextView 
    android:id="@+id/time" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignStart="@+id/queue_type" 
    android:layout_centerVertical="true" 
    android:text="24/06/17 23:00" /> 

<TextView 
    android:id="@+id/sender" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="ADC" 
    android:textSize="18sp" 
    android:textStyle="bold" 
    android:layout_alignBaseline="@+id/button_reply" 
    android:layout_alignBottom="@+id/button_reply" 
    android:layout_alignStart="@+id/time" /> 

<TextView 
    android:id="@+id/textView3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Looking For" 
    android:layout_alignBottom="@+id/queue_type" 
    android:layout_alignStart="@+id/button_reply" /> 

<TextView 
    android:id="@+id/receiver" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignStart="@+id/textView3" 
    android:layout_below="@+id/textView3" 
    android:text="Support" /> 

<TextView 
    android:id="@+id/summ" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="TextView" 
    android:textStyle="bold" /> 




</RelativeLayout> 

Recycler_view.xml:

<android.support.v4.widget.SwipeRefreshLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/swiperefresh2" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
      <android.support.v7.widget.RecyclerView 
      xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       xmlns:app="http://schemas.android.com/apk/res-auto" 
       android:id="@+id/my_recycler_view" 
       android:clipToPadding="false" 
       android:paddingBottom="16dp" 
       android:paddingTop="16dp" 
       android:scrollbars="vertical" 
       app:layout_behavior="@string/appbar_scrolling_view_behavior"> 
      </android.support.v7.widget.RecyclerView> 

    </ScrollView> 



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

Announces_content_fragment.act ivity:

public class AnnouncesContentFragment extends Fragment implements 
SwipeRefreshLayout.OnRefreshListener { 

    private RecyclerView.Adapter adapter; 
    private RecyclerView recyclerView; 
    private List<Messages> currentItems = new ArrayList<>(); 
    private String summoner; 
    private String rank; 
    private FirebaseAuth au = FirebaseAuth.getInstance(); 
    private FirebaseFirestore d; 
    private SwipeRefreshLayout swipeRefreshLayout; 
    //public static CurrentProfile current; 






    @SuppressLint("ResourceAsColor") 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup 
container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    View v = inflater.inflate(
      R.layout.recycler_view, container, false); 
    recyclerView = (RecyclerView) 
    v.findViewById(R.id.my_recycler_view); 
    FirebaseFirestore d = FirebaseFirestore.getInstance(); 


    swipeRefreshLayout = (SwipeRefreshLayout) 
    v.findViewById(R.id.swiperefresh2); 
    swipeRefreshLayout.setProgressViewOffset(true, 1500, 1800); 



    swipeRefreshLayout.setColorSchemeColors 
    (android.R.color.holo_blue_light, 
      android.R.color.holo_green_light, 
      android.R.color.holo_red_light, 
      android.R.color.holo_orange_light); 
    swipeRefreshLayout.setOnRefreshListener(this); 
    swipeRefreshLayout.post(new Runnable() { 
     @Override 
     public void run() { 
      swipeRefreshLayout.setRefreshing(true); 
     } 
    }); 
    try { 
     setFirebaseValueListener(); 
    } catch (ExecutionException e) { 
     e.printStackTrace(); 
    } catch (InterruptedException e) { 
     e.printStackTrace(); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    recyclerView.setAdapter(adapter); 
    recyclerView.setHasFixedSize(true); 
    recyclerView.setNestedScrollingEnabled(true); 
    LinearLayoutManager mm = new LinearLayoutManager(getContext(), 
    LinearLayoutManager.VERTICAL,false); 
    recyclerView.setLayoutManager(mm); 
    return recyclerView; 
} 


public void setFirebaseValueListener() throws ExecutionException, 
InterruptedException, JSONException { 
    final FirebaseFirestore d = FirebaseFirestore.getInstance(); 
    NetworkController nc = new NetworkController(); 
    nc.getMessages(getContext(), new ServerCallback() { 
     @Override 
     public void onSucces(JSONObject result) { 
      try { 
       JSONArray array = result.getJSONArray("data"); 
       for(int i =0;i<array.length();i++){ 
        JSONObject obj = array.getJSONObject(i); 
        Messages mes = new 
        Gson().fromJson(obj.toString(),Messages.class); 
        currentItems.add(mes); 
       } 
       summoner = "AFKMan"; 
       adapter = new 
       RecyclerViewAdapter(currentItems,summoner); 
       recyclerView.setAdapter(adapter); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 
} 

@Override 
public void onRefresh() { 
    try { 
     setFirebaseValueListener(); 
    } catch (ExecutionException e) { 
     e.printStackTrace(); 
    } catch (InterruptedException e) { 
     e.printStackTrace(); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
} 
+1

嘗試在你的'Recycler_view.xml' –

+0

@NavneetKrishna無關消除滾動視圖。這就像是重寫swipelayout。 –

回答

1

隨着 RecyclerView,你不必擔心滾動視圖。如果您的列表超出佈局的限制,Recyclerview會自動放入滾動查看

嘗試刪除滾動查看這可能有所幫助。

而且它看起來像你沒有包括任何佈局父母 SwipeRefreshLayout。包括 LinearLayout或任何其他佈局父項 SwipeRefreshLayout

編輯(解決您的問題)

更換

return recyclerView; 

通過

return v;  
+0

無事可做:| –

+0

在Recycler_View.xml中包含LinearLayoutl父對象SwipeRefreshLayout –

+0

您的意思是在Swipe中嗎? –