Как программно добавить layout в Activity?

179
28 октября 2017, 14:49

У меня есть некий метод для использования Retrofit. И я хочу создать такую штуку, что когда идет загрузка данных то в окне видно прогресс бар.

У меня пока что 10 окон. Чтобы в каждом Layout не создавать ProgressBar.

Я хочу создать 1 Layout с ProgressBarом. И при загрузке данных добавить в Context этот самый layout.

Вроде бы получить View не проблема, делается это так View viewProgress=LayoutInflater.from(context).inflate(R.layout.loading_progress,null);

Для меня проблема это в том, как этот View добавить в текущий Context.

И как правильно сделать лучше это? В данный момент я лишь думаю поверх текущего Layout

Answer 1

Если вы будете отображать своё вью с прогрессом поверх основного лейаута, то это ничем не будет отличаться от ProgressDialog. Который, в свою очередь, объявлен Deprecated в API 26 именно по причине того, что отображать прогрес по верх данных и блокировать другие действия пользователя считается плохим UX.

Гугл как раз рекомендует использовать встроенные в разметку ProgressBar.

Если у вас какая-то сложная составная вью для прогресса и вы не хотите дублировать её в каждом файле лейаута, то можете, объявив её в отдельном xml, включать в разметку в нужном месте с помощью тега <include />:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/app_bg"
    android:gravity="center_horizontal">
    <include layout="@layout/loading_progress"/>
    <TextView android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:text="@string/hello"
              android:padding="10dp" />
    ...
</LinearLayout>
READ ALSO
IntelliJ IDEA проблема с компиляцией [требует правки]

IntelliJ IDEA проблема с компиляцией [требует правки]

Доброго времени суток! Нашел я проект на GitHub https://githubcom/bither/bither-desktop-java , импортировал как gradle project в intellij по рекомендациям автора, но вылезают...

190
как ввести с консоли дробное число с bufferreader

как ввести с консоли дробное число с bufferreader

как ввести с консоли дробное число с bufferreader

159
Загрузка jar файла с сервера javaservlet

Загрузка jar файла с сервера javaservlet

ЗдравствуйтеНе могли бы направить, в чем ошибка

198
Почему отваливаются фоновые службы на Android?

Почему отваливаются фоновые службы на Android?

Доброго времени сутокПодскажите, почему может отваливаться работа фоновой службы на Android

179