ActionBar – PullToRefresh

Estoy desarrollando una aplicación donde puedes ver Horarios de BusStop. Y los usuarios pueden actualizar con el ActionBar PullToRefresh (Library). Mi aplicación también tiene barra de estado translúcida en KitKat habilitado.

Ahora, la superposición de ActionBar, que normalmente debe superponerse a la barra de acción, ahora se desplaza hacia arriba.

¿Cómo puedo resolver eso?

¡Atentamente!

Lo que hice es crear un diseño de encabezado personalizado para el diseño pull-to-refresh. Acabo de copiar el original, agregó la altura de la barra de estado que es generalmente 25dp y agregó un relleno superior 25dp.

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="73dp" android:paddingTop="25dp" > <FrameLayout android:id="@id/ptr_content" android:layout_width="match_parent" android:layout_height="73dp" > <TextView android:id="@id/ptr_text" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:textAppearance="?android:attr/textAppearanceMedium" /> </FrameLayout> <fr.castorflex.android.smoothprogressbar.SmoothProgressBar android:id="@id/ptr_progress" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="@dimen/ptr_progress_bar_stroke_width" /> </RelativeLayout> 

Ahora configure el diseño cuando configure el pull para actualizar el diseño:

 ActionBarPullToRefresh.from(getActivity()).listener(new OnRefreshListener() { @Override public void onRefreshStarted(View view) { refresh(); } }).headerLayout(R.layout.header).build()).setup(ptrLayout); 

prueba esto.

Res / layout / activity_main.xml

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.swipetorefresh.MainActivity" tools:ignore="MergeRootFrame" /> 

Res / layout / fragment_main.xml

 <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" tools:ignore="MergeRootFrame" > <ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v4.widget.SwipeRefreshLayout> 

MainActivity.java

  public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState == null) { getFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()).commit(); } } public static class PlaceholderFragment extends ListFragment implements OnRefreshListener { private SwipeRefreshLayout mSwipeRefreshLayout; private static final int LIST_ITEM_COUNT = 5; private int mOffset = 0; private ArrayAdapter<String> mListAdapter; public PlaceholderFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); // Configure the swipe refresh layout mSwipeRefreshLayout = (SwipeRefreshLayout) rootView.findViewById(R.id.container); mSwipeRefreshLayout.setOnRefreshListener(this); mSwipeRefreshLayout.setColorScheme( R.color.swipe_color_1, R.color.swipe_color_2, R.color.swipe_color_3, R.color.swipe_color_4); // Put the first batch of countries in the list mListAdapter = new ArrayAdapter<String>( getActivity(), android.R.layout.simple_list_item_1, android.R.id.text1, getCountries(mOffset)); setListAdapter(mListAdapter); return rootView; } private List<String> getCountries(int offset) { ArrayList<String> countriesList = new ArrayList<String>(); for(int i=0; i<LIST_ITEM_COUNT;i++){ countriesList.add(COUNTRIES[offset+i]); } mOffset = offset + LIST_ITEM_COUNT; return countriesList; } @Override public void onRefresh() { // Start showing the refresh animation mSwipeRefreshLayout.setRefreshing(true); // Simulate a long running activity new Handler().postDelayed(new Runnable() { @Override public void run() { updateCountries(); } }, 5000); } private void updateCountries() { // Add the next batch of countries to the list mListAdapter.addAll(getCountries(mOffset)); // Signify that we are done refreshing mSwipeRefreshLayout.setRefreshing(false); } private static final String[] COUNTRIES = {"Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina", "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "Bosnia and Herzegovina", "Botswana", "Brazil", "Brunei Darussalam", "Bulgaria", "Burkina Faso", "Burundi", "Cambodia", "Cameroon", "Canada", "Cape Verde", "Cayman Islands", "Central African Republic", "Chad", "Chile", "China", "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Democratic Republic of the Congo (Kinshasa)", "Congo, Republic of(Brazzaville)", "Cook Islands", "Costa Rica", "Ivory Coast", "Croatia", "Cuba", "Cyprus", "Czech Republic", "Denmark", "Djibouti", "Dominica", "Dominican Republic", "East Timor (Timor-Leste)", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia", "Ethiopia"}; } } 
  • No se puede obtener el número de fila que se ha hecho clic en la vista de lista de android
  • java.lang.IllegalStateException: getWritableDatabase llamado recursivamente
  • Uso del diseño ScrollViews en HorizontalScrollView
  • ¿Es posible extender AbsListView para hacer nuevas implementaciones ListView?
  • Crear una lista de ViewPager: elementos de la lista en blanco
  • Eliminación de elementos de un ListView mediante un BaseAdapter personalizado
  • Android: Visualización de WhiteSpace al cerrar Soft Keyboard
  • Horizontal ListView
  • Android -El contenido del adaptador ha cambiado pero ListView no recibió una notificación
  • ToggleButton en ListView, el valor cambia automáticamente al desplazarse
  • ListView es completamente inferior a RecyclerView?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.