Snackbar скрывает плавающее действие при нажатии кнопки действия на нем
Я работаю над Снэк-баром и плавающей кнопкой действия. Я использовал макет координатора для создания кнопки плавающего действия для отображения/перемещения при отображении snackbar. Проблема в том, что я сохранил действие для snackbar . Когда плавающая кнопка нажата, Snackbar выскакивает и плавающая кнопка действия движется вверх. И когда я нажал элемент действия snackbar, плавающая кнопка действия становится скрытой под дочерней snackbar.
и если я нажму кнопку плавающей действий последовательно, затем также плавающая кнопка действия становится скрытой.
Ниже приведен мой код.
activity_main.в XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.dev.firsttest.Screen2"
>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/primary_color"></android.support.v7.widget.Toolbar>
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/coordinatorlayout">
<android.support.design.widget.FloatingActionButton
android:id="@+id/searchfab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_marginBottom="20dp"
android:layout_marginRight="20dp"
android:src="@drawable/ic_add_black_24dp"
app:fabSize="normal">
</android.support.design.widget.FloatingActionButton>
</android.support.design.widget.CoordinatorLayout>
MainActivity
Toolbar toolbar;
FloatingActionButton searchfab;
CoordinatorLayout coordinatorLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_screen2);
toolbar = (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
coordinatorLayout = (CoordinatorLayout)findViewById(R.id.coordinatorlayout);
searchfab = (FloatingActionButton)findViewById(R.id.searchfab);
searchfab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Snackbar.make(coordinatorLayout, "This is Snackbar Demo", Snackbar.LENGTH_LONG).setAction("Click", new View.OnClickListener() {
@Override
public void onClick(View v) {
Snackbar.make(coordinatorLayout, "This is Child Snackbar", Snackbar.LENGTH_LONG).show();
}
}).show();
}
});
}
нажатие дочернего действия в Snackbar и последовательные нажатия на плавающую кнопку действия делает плавающую кнопку действия скрывается обратно в Snackbar
ценю вашу помощь
спасибо
2 ответов
ответ ее здесь:https://github.com/ggajews/coordinatorlayoutwithfabdemo .
Он будет перемещать FAB, когда отображается закусочная.
Я не смог воспроизвести вашу проблему. Вот мой код
View.OnClickListener test1 = new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(getActivity().findViewById(R.id.snackbarPosition), "test 1", Snackbar.LENGTH_LONG)
.setAction(R.string.snackbar_action_undo, new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(getActivity().findViewById(R.id.snackbarPosition), "test 2", Snackbar.LENGTH_LONG)
.setActionTextColor(getResources().getColor(R.color.myBlueGreen))
.show();
}
})
.show();
}
};
FloatingActionButton button = (FloatingActionButton)streamView.findViewById(R.id.buttonFloat);
button.setOnClickListener(test1);
XML
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textColor="@android:color/white"
android:id="@+id/snackbarPosition">
<android.support.design.widget.FloatingActionButton
android:id="@+id/buttonFloat"
android:src="@drawable/ic_content_new"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_marginBottom="20dp"
android:layout_marginRight="20dp"
app:backgroundTint="@color/myBlueGreen"
app:elevation="6dp"
app:pressedTranslationZ="12dp"
/>
</android.support.design.widget.CoordinatorLayout>
добавление второго snackbar "test2" появляется как OnClickListener на snackbar "test1", для меня заменяет snackbar" test1 "на" test2 " (и не скрывает плавающую кнопку действия)
кроме того, дважды щелкнув по плавающей кнопке действия, snackbar "test1" мигает, т. е. появляется дважды, но не два snackbars один поверх другого. Плавающая кнопка действия не исчезающий.
другими словами, Я никогда не вижу "дочернюю" закусочную поверх "родительской" закусочной.
Я не вижу разницы между вашим кодом и моим. Возможно, попробуйте скопировать мой код и посмотреть, решит ли он вашу проблему.