Intereting Posts

Могу ли я использовать Pull для обновления без использования ScrollView / ListView?

Я попытался реализовать Pull to Refresh в моем приложении.

Я завернул свой xml-код с помощью android.support.v4.widget.SwipeRefreshLayout, и он работает, но графический интерфейс выглядит не очень хорошо.

Когда я спускаюсь, я должен видеть значок обычного анимированного круга с моими определенными цветами, верно ?, но я вижу это как пустой круг, а не поворот с цветами, как должен.

Кроме того, я не могу «играть» с ним и даже удерживать его некоторое время после того, как я его вытащил, он опускается на одну секунду (делать то, что он делает), а затем исчезает.

Я думаю, это потому, что я не использую ListView, а LinearLayout.

Как вы думаете?

Код:

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> 

Ява:

 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); } } 

Попробуйте изменить цветовую схему SwipeRefreshLayout .

  swipeRefreshLayout.setColorSchemeColors( Color.RED, Color.GREEN, Color.BLUE, Color.CYAN); 

Кроме того, SwipeRefreshLayout будет отображаться только до onRefresh() пор, пока onRefresh() завершит свое выполнение.