У меня есть собственное веб-представление в моем приложении, в верхней части которого находится прямоугольная полоса для отображения заголовка страницы, значка возврата и кнопки «Поделиться». Когда страница загружается, я показываю «Загрузка ...» и, как только она завершается, я отображаю заголовок страницы.
Проблема в том, что когда это происходит, иконка спины перемещается или подпрыгивает с места. Я не могу понять, почему.
Ниже мой xml-файл только для бара.
<android.support.constraint.ConstraintLayout
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary">
<ImageButton
android:id="@+id/backIcon"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="10dp"
android:layout_weight="1"
android:adjustViewBounds="false"
android:background="?android:selectableItemBackground"
android:cropToPadding="false"
android:gravity="center_vertical"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:scaleType="fitCenter"
app:layout_constraintStart_toStartOf="parent"
app:srcCompat="@drawable/back_icon_small"
android:layout_marginLeft="10dp" />
<TextView
android:id="@+id/articleLoading"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:layout_weight="1"
android:ellipsize="end"
android:gravity="center_vertical|center_horizontal"
android:maxEms="10"
android:maxLines="1"
android:text="TextView"
android:textColor="@color/colorAccent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/backIcon" />
<ImageButton
android:id="@+id/shareButton"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginEnd="15dp"
android:adjustViewBounds="false"
android:background="?android:selectableItemBackground"
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/button_share_white" />
<TextView
android:id="@+id/articleTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:gravity="center_horizontal"
android:maxEms="20"
android:maxLines="1"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="TextView"
android:textColor="@color/colorAccent"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/shareButton"
app:layout_constraintStart_toEndOf="@id/backIcon"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.6" />
</android.support.constraint.ConstraintLayout>
Ниже приведен метод, который устанавливает заголовок при полной загрузке страницы.
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
progressBar.setProgress(newProgress);
if (newProgress == 100) {
articleTitle.setText(view.getTitle());
progressBar.setVisibility(View.INVISIBLE);
loading.setVisibility(View.INVISIBLE);
articleTitle.setVisibility(View.VISIBLE);
}
}