Intereting Posts
Загрузка сглаживания изображений с использованием контекста приложения Как обнаружить, что HorizontalScrollView достигли конца Есть ли какая-либо платформа для Android, готовая к использованию Как исправить плагин Eclipse ADT 22.3 / SDK Tools 22.3 со сломанным окном свойств? Как установить плотность пикселей эмулятора из командной строки? Как динамически добавлять предложения в autocompletetextview с сохранением статуса символа Могу ли я установить флаг BuildConfig, который возвращает, будет ли apk построена с помощью задачи «connectedAndroidTest»? Android Fragment – переход от одного вида к другому? Как получить высоту строки состояния и панели кнопок софт-клавиш? Можем ли мы использовать детектор жестов масштаба для увеличения зума в Android? Плохая ошибка базы-64 Текстовое поле html в WebView в приложении Android скрыто с помощью мягкой клавиатуры Панель уведомлений серая после реализации Nav Drawer Как воспроизвести аудиофайл в Android? Настройка res srcDirs для androidTest sourceSet

ActionBar – PullToRefresh

Я разрабатываю приложение, где вы можете просматривать расписания BusStop. Пользователи могут обновляться с помощью ActionBar PullToRefresh (Library). Мое приложение также имеет полупрозрачную панель статусов на включенном KitKat.

Теперь ActionBar Overlay, который должен нормально перекрывать панель действий, теперь смещается вверх.

Как я могу это решить?

С наилучшими пожеланиями!

Solutions Collecting From Web of "ActionBar – PullToRefresh"

То, что я сделал, это создать настраиваемый макет заголовка для макета pull-to-refresh. Я только что скопировал оригинал, добавив высоту строки состояния, которая обычно составляет 25 дп, и добавила верхнее дополнение 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> 

Теперь задайте макет, когда вы настраиваете pull для обновления макета:

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

попробуй это.

разреш / макет / 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" /> 

разреш / макет / 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"}; } }