Crouton центрирует пользовательский вид и проблемы с исчезновением

Сегодня я сменил тост на крутон. Но у меня были следующие проблемы:

1) Показ гренки в центре

2) Всякий раз, когда я хочу отобразить новый Crouton, он снова отображает предыдущий Crouton, хотя предыдущий скрылся давно

Я хочу знать, есть ли лучший способ решить вышеуказанные проблемы? Потому что я посмотрел на образец и библиотеку, но не смог найти "

В настоящее время я решаю эти способы

макет деятельности:

<RelativeLayout 
    android:id="@+id/bigcontainer"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
    android:layout_height="match_parent"
    >





<FrameLayout 
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".DilmancSRActivity"
    tools:ignore="MergeRootFrame" />

     <RelativeLayout
    android:id="@+id/alternate_view_group"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"   
    android:layout_centerInParent="true" 

    />
</RelativeLayout>

Создание моего собственного тоста и его центрирование по горизонтали:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toast_layout_root"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    >
<LinearLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/kdrw"
    android:orientation="horizontal"
    android:padding="8dp" >

    <ImageView
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_marginRight="8dp"
        android:contentDescription="@string/strnull"
        android:src="@drawable/logo" />

    <TextView
        android:id="@+id/toasttextView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#000000" />

</LinearLayout>

</LinearLayout>

Показаны гренки:

    LayoutInflater inflater = localdsr.getLayoutInflater();
                        View layout = inflater.inflate(R.layout.toast, null); 
                        TextView text = (TextView) layout.findViewById(R.id.toasttextView1);
                        text.setText(info);  
                        if (toast != null)
                            toast.cancel();

                        Configuration croutonConfiguration=new Configuration.Builder().setDuration(1500).build();


                    toast=Crouton.make(localdsr, layout ,R.id.alternate_view_group ,croutonConfiguration); 

                    toast.show();

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

   //croutonView.startAnimation(crouton.getInAnimation());

вопрос об удалении функции, которая заставляла вещи появляться снова внутри protected void removeCrouton(Crouton crouton)

  //sendMessageDelayed(crouton, Messages.DISPLAY_CROUTON, crouton.getOutAnimation().getDuration());
 //I changed it with below .plus removed crouton.getOutAnimation().getDuration() so it does not throw exception
sendMessage(crouton, Messages.DISPLAY_CROUTON);

Я верю, что что-то упустил. Надеюсь, что уже есть правильный способ сделать это.

1 ответ

Решение

Вносить изменения в самой библиотеке не рекомендуется, так как это может создать проблемы, которые появляются только в вашей версии Crouton.

Вы можете изменить анимацию через Configuration.Builder.setInAnimation(...) а также .setOutAnimation(...),

Configuration может быть использован повторно и не должен создаваться каждый раз, когда вы хотите показать Crouton, То же самое относится и к вашему View, Это не должно быть надутым каждый раз.

Относительно дублирования отображения гренка: это поведение не предназначено. Приведенный выше код выглядит так, как будто он должен отображать Crouton с info текстовый набор. Если твой info текст изменился во время отображения Croutons, это может быть ошибка в библиотеке. Если это так, не стесняйтесь сообщить об этом.

Другие вопросы по тегам