ich in diesem Fragmente des folgenden Code verwenden:SwipeRefreshLayout setRefreshing nicht zeigt Fortschrittsbalken in Fragmente
public class OwnerPendingBookingsFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener {
private View myView;
private ListView booking_list;
private ArrayAdapter adapter;
private SharedPreferences preferences;
private BookingList bookings;
private SwipeRefreshLayout swipe;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
myView = inflater.inflate(R.layout.owner_pending_bookings_layout, container, false);
swipe = (SwipeRefreshLayout) myView.findViewById(R.id.swipe);
swipe.setOnRefreshListener(this);
swipe.post(new Runnable() {
@Override
public void run() {
swipe.setRefreshing(true);
new FindBookings().execute("");
}
}
);
return myView;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
private void setUpAdapter(){
booking_list = (ListView) myView.findViewById(R.id.pending_bookings);
if(bookings.getBookings().size() == 0){
booking_list.setVisibility(View.GONE);
LinearLayout no_vehicles = (LinearLayout) myView.findViewById(R.id.no_bookings_layout);
no_vehicles.setVisibility(View.VISIBLE);
}else {
new setImageTask().execute("");
adapter = new OwnerPendingBookingsAdapter(myView.getContext(), bookings.getBookings());
booking_list.setAdapter(adapter);
booking_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
int booking_line = bookings.getBookings().get(position).getBooking_line_id();
Fragment booking_info = new OwnerPendingBookingInfoFragment();
Bundle args = new Bundle();
args.putInt("bookingLine", booking_line);
booking_info.setArguments(args);
FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.content_frame, booking_info);
transaction.addToBackStack(null);
transaction.commit();
}
});
booking_list.setVisibility(View.VISIBLE);
}
//LinearLayout progressBar = (LinearLayout) myView.findViewById(R.id.loadingPanel);
//progressBar.setVisibility(View.GONE);
}
@Override
public void onRefresh() {
swipe.setRefreshing(true);
new FindBookings().execute("");
}
private class FindBookings extends AsyncTask<String, Void, String> {
String token = preferences.getString(Config.TOKEN, "");
public FindBookings() {
}
@Override
protected void onPreExecute() {
swipe.setRefreshing(true);
}
@Override
protected void onPostExecute(String s){
setUpAdapter();
swipe.setRefreshing(false);
}
@Override
protected String doInBackground(String... params) {
bookings = DBConnect.getInfo();
return "done";
}
}
Und ich habe folgendes Layout:
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipe"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/pending_bookings"
android:layout_gravity="center_horizontal"
android:divider="@null"
android:visibility="gone"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/no_bookings_layout">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/no_vehicles"
android:textSize="25dp"
android:textAlignment="center"
/>
</LinearLayout>
Das erste Mal startet, es macht es richtig Ich sehe den Fortschritt rollt, bis es den Prozess beendet. Aber jedes Mal, wenn ich nach unten wische, wird die Aktualisierung gestartet, aber ich sehe den Fortschrittsbalken nicht.
Ich überprüfe SwipeRefreshLayout setRefreshing() not showing indicator initially und Android ProgressBar styled like progress view in SwipeRefreshLayout aber keine dieser Antworten funktionierte für mich.
funktioniert wie Charme ... !!! thnks @ mgcaguioa – Rumit