Ich habe versucht, Pull-to-Refresh in meiner App zu implementieren.Kann ich Pull-to-Refresh ohne ScrollView/ListView verwenden?
Ich wickelte meinen XML-Code mit android.support.v4.widget.SwipeRefreshLayout und es funktioniert, aber die GUI sieht nicht gut aus.
Wenn ich herunterziehe, sollte ich das reguläre animierte Kreissymbol mit meinen definierten Farben sehen, richtig ?, aber ich sehe es als einen leeren Kreis und nicht als einen drehenden mit Farben, wie es sollte.
Außerdem kann ich nicht damit "spielen" und halte es sogar noch eine Weile, nachdem ich es gezogen habe, es geht für eine Sekunde runter (mach was es tut) und verschwindet dann.
Ich denke es ist, weil ich nicht ListView sondern LinearLayout stattdessen verwende.
Was denkst du?
Code:
XML:
<android.support.v4.widget.SwipeRefreshLayout
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:id="@+id/swipe">
<LinearLayout
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:orientation="vertical"
android:layout_width="match_parent"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="#7B68EE"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".HomeActivity">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/loin"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/welcome"
android:textColor="#B0C4DE"
android:id="@+id/welcomeBackID"
android:layout_alignParentTop="true"
android:layout_alignRight="@+id/webViewCurren"
android:layout_alignEnd="@+id/webViewCurren" />
....
</android.support.v4.widget.SwipeRefreshLayout>
Java:
public class HomeActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener {
SwipeRefreshLayout mSwipeRefreshLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe);
mSwipeRefreshLayout.setColorSchemeResources(android.R.color.holo_green_light,
android.R.color.holo_blue_bright,
android.R.color.holo_orange_light,
android.R.color.holo_red_light);
mSwipeRefreshLayout.setOnRefreshListener(this);
@Override
public void onRefresh() {
Toast.makeText(this, "Refresh", Toast.LENGTH_SHORT).show();
sharedPrefEditor.putString("coordinateX", "34.7");
sharedPrefEditor.putString("coordinateY", "32.5");
sharedPrefEditor.putString("saved", "false");
sharedPrefEditor.commit();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mSwipeRefreshLayout.setRefreshing(false);
}
}, 3000);
}
}