标签: android-snackbar

使用CoordinatorLayout时,AdView和FloatingActionButton重叠

CoordinatorLayout我的一个布局中加入新内容之后,我遇到了与Adviews重叠的问题FloatingActionButton.

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            app:layout_scrollFlags="scroll|enterAlways" />

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </android.support.design.widget.AppBarLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end|bottom"
        android:layout_margin="@dimen/fab_margin"
        android:src="@drawable/ic_done" />

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

资料来源: https ://github.com/chrisbanes/cheesesquare/blob/master/app/src/main/res/layout/include_list_viewpager.xml

如果我采用相同的布局并在AdView下面加入,FloatingActionButton则会导致FloatingActionButton不再使用SnackBars:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            app:layout_scrollFlags="scroll|enterAlways" />

        <android.support.design.widget.TabLayout …
Run Code Online (Sandbox Code Playgroud)

android admob floating-action-button android-snackbar android-coordinatorlayout

11
推荐指数
1
解决办法
3945
查看次数

我可以在对话框中显示材料设计Snackbar吗?

我正在开发一个Android应用程序.在那我想在对话框中显示材料设计Snackbar.可能吗?如果是,那怎么样?

请帮我.

谢谢.

android material-design android-snackbar

11
推荐指数
2
解决办法
9505
查看次数

解除Snackbar/ViewDragHelper时出现ArrayIndexOutOfBoundsException

Snackbar我的一些应用程序中实现新的后,我收到以下错误:

java.lang.ArrayIndexOutOfBoundsException: length=1; index=1 at
android.support.v4.widget.ViewDragHelper.shouldInterceptTouchEvent(SourceFile:1014) at
 android.support.design.widget.SwipeDismissBehavior.onInterceptTouchEvent(SourceFile:188) at
 android.support.design.widget.Snackbar$Behavior.onInterceptTouchEvent(SourceFile:659) at
 android.support.design.widget.Snackbar$Behavior.onInterceptTouchEvent(SourceFile:641) at
 android.support.design.widget.CoordinatorLayout.performIntercept(SourceFile:343) at
 android.support.design.widget.CoordinatorLayout.onInterceptTouchEvent(SourceFile:376) at
 android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1827) at
 android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2241) at
 android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1946) at
 android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2241) at
 android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1946) at
 android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2241) at 
 android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1946) at 
 android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2241) at 
 android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1946) at 
 android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2241) at 
 android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1946) at 
 android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2241) at 
 android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1946) at 
 com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1968) at 
 com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1420) at 
 android.app.Activity.dispatchTouchEvent(Activity.java:2428) at 
 android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(SourceFile:59) at 
 android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(SourceFile:59) at 
 com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1916) at 
 android.view.View.dispatchPointerEvent(View.java:7475) at 
 android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3744) at 
 android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3672) at 
 android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4924) at 
 android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4884) at 
 android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5036) at 
 android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:179) at 
 android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method) at 
 android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:171) at 
 android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:5004) at 
 android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:5058) at …
Run Code Online (Sandbox Code Playgroud)

android android-design-library android-snackbar android-coordinatorlayout

10
推荐指数
1
解决办法
1188
查看次数

Snackbar不会在轻扫时解雇

我的appcompat活动中有一个小吃吧.它有一个按钮OK,可以解开零食吧.它正在工作.但是我不能在轻扫(左到右)时忽略小吃吧.

以下是我的小吃吧代码....

final Snackbar snackbar = Snackbar
                                .make(view, "Error Message", Snackbar.LENGTH_INDEFINITE);

                        snackbar.setAction("OK", new View.OnClickListener() {
                                    @Override
                                    public void onClick(View view) {
                                            snackbar.dismiss();
                                    }
                                });

                        snackbar.show();
Run Code Online (Sandbox Code Playgroud)

编辑1

我的相对布局作为我的活动的XML布局中的父布局.

android android-snackbar

10
推荐指数
3
解决办法
6759
查看次数

在顶部显示SnackBar(工具栏下方)

我试图在我的SnackBar下面显示一个,ToolBarMainActivity

我试过这段代码:

 mToolbar = (Toolbar) findViewById(R.id.toolbar);
 Snackbar snack = Snackbar.make(findViewById(android.R.id.content), "Had a snack at Snackbar", Snackbar.LENGTH_LONG);
    View view = snack.getView();
    FrameLayout.LayoutParams params =(FrameLayout.LayoutParams)view.getLayoutParams();
    params.gravity = Gravity.TOP;
    view.setLayoutParams(params);
    snack.show();
Run Code Online (Sandbox Code Playgroud)

SnackBar它显示在顶部,但不低于Toolbar.

我想要一些类似于Hangout应用程序的东西:

在此输入图像描述

主要活动:

<android.support.design.widget.CoordinatorLayout 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"
    android:id="@+id/Coordinator"
    xmlns:fab="http://schemas.android.com/apk/res-auto"
    tools:context=".MainActivity">

   <LinearLayout
       android:orientation="vertical"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent">

       <android.support.v7.widget.Toolbar

           android:id="@+id/toolbar"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:minHeight="?attr/actionBarSize"
           android:background="?attr/colorPrimary"
           android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

           <ImageView
               android:layout_width="75dp"
               android:layout_height="28dp"
               android:src="@drawable/athena"/>
      </android.support.v7.widget.Toolbar>

      <ProgressBar
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:id="@+id/progressBar5"
           android:layout_marginTop="10dp"
           android:layout_gravity="center_horizontal" />

      <android.support.v4.widget.SwipeRefreshLayout
           android:id="@+id/swipeRefreshLayout"
           android:layout_width="match_parent"
           android:layout_height="match_parent">

           <android.support.v7.widget.RecyclerView
               android:id="@+id/my_recycler_view"
               android:layout_width="match_parent"
               android:layout_height="wrap_content" …
Run Code Online (Sandbox Code Playgroud)

android material-design android-snackbar

9
推荐指数
1
解决办法
9618
查看次数

在服务中显示Snackbar

SnackBar从里面显示一个时Activity,我有rootView可用的.但我需要在SnackBar里面展示一个Service,我没有View可用的.我怎么能做到这一点?

作为背景故事:活动启动服务来执行任务.在Service需要显示SnackBar根据情况.我不想为此纠结Service.那么我怎么能做到这一点呢?通常我可以显示一个Toast,但我需要用户能够阅读该消息并确认.

service android android-layout android-snackbar

9
推荐指数
2
解决办法
8478
查看次数

将Snackbar置于最高z顺序,以避免被AutoCompleteTextView下拉阻止

我有一个Snackbar如下:

在此输入图像描述

但是,如果下拉的AutoCompleteTextView时间过长,则下拉将阻止Snackbar.

在此输入图像描述

正如您在上图中看到的那样,Snackbar实际上正在显示.然而,长期下降阻碍了它的可见性.您可以从上面的图像中看到

我尝试使用以下内容Snackbar code.添加bringToFront()没有多大帮助.

private void showSnackbar(String message) {
    Snackbar snackbar
            = Snackbar.make(getActivity().findViewById(R.id.content), message, Snackbar.LENGTH_LONG);
    snackbar.getView().bringToFront();
    snackbar.show();
}
Run Code Online (Sandbox Code Playgroud)

R.id.content是一个CoordinatorLayout:

    <android.support.design.widget.CoordinatorLayout
        android:id="@+id/content"
        android:background="?attr/MyActivityBackground"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:foreground="?attr/headerShadow" />
Run Code Online (Sandbox Code Playgroud)

有没有什么好办法可以避免SnackbarAutoCompleteTextView摔倒?

android autocompletetextview android-windowmanager android-snackbar android-coordinatorlayout

9
推荐指数
2
解决办法
752
查看次数

Android KitKat:Snackbar不在屏幕的底部

我在我的应用程序中添加了Snackbar.问题是在API 19中它不在屏幕的底部.

在此输入图像描述

在API 21中没关系.这是我的布局

<?xml version="1.0" encoding="utf-8"?>
<layout 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">

<data />
 <android.support.design.widget.CoordinatorLayout
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:focusable="true"
        android:focusableInTouchMode="true">

        <EditText

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="@string/home_search_input_hint"
            android:inputType="text"
            android:maxLength="30"
            android:maxLines="1"/>

    </android.support.constraint.ConstraintLayout>
</android.support.design.widget.CoordinatorLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)

和我的 OnCreate

 @Override
protected void onCreate(Bundle savedInstanceState) {
    setContentView(R.layout.activity_home);
    super.onCreate(savedInstanceState);
    // binding
    binding = DataBindingUtil.setContentView(this, R.layout.activity_home);


    // snackbar test
    Snackbar snackbar = Snackbar.make(binding.root, "Snackbar", Snackbar.LENGTH_INDEFINITE);

    snackbar.show();
}
Run Code Online (Sandbox Code Playgroud)

你有任何想法如何解决它?

更新:从底部开始的边缘似乎是随机的,我重新运行模拟器并看到这一点.

在此输入图像描述

还有这个

在此输入图像描述

android snackbar android-snackbar

9
推荐指数
1
解决办法
1634
查看次数

在协程范围内调用时启动不执行

我在协程范围内调用 launch 但它不执行。Snackbar 操作监听器正在执行,但启动块由于某种原因没有执行。

CoroutineScope(Dispatchers.Main).launch {
    val scope = this
    val mn = snackbarManager(R.id.root)
    Snackbar
        .make(mn.container, R.string.recpt_deleted, Snackbar.LENGTH_LONG)
        .setAction(R.string.undo) {
            scope.launch { // not executing
                Toast.makeText(requireContext(),"Committing",Toast.LENGTH_LONG).show()
                Log.d("COMMIT", "calling commit")
            }
        }
        .show()
}
Run Code Online (Sandbox Code Playgroud)

android kotlin android-snackbar kotlin-coroutines coroutinescope

9
推荐指数
1
解决办法
5908
查看次数

如何启用 Compose 小吃栏的滑动关闭行为

下面的简单代码用于显示 Compose Snackbar

当 onClick 事件发生时,此代码正确显示 Snackbar。

 val scaffoldState = rememberScaffoldState() // this contains the `SnackbarHostState`
    val coroutineScope = rememberCoroutineScope()

    Scaffold(
        modifier = Modifier,
        scaffoldState = scaffoldState // attaching `scaffoldState` to the `Scaffold`
    ) {
        Button(
            onClick = {
                coroutineScope.launch { // using the `coroutineScope` to `launch` showing the snackbar
                    // taking the `snackbarHostState` from the attached `scaffoldState`
                    val snackbarResult = scaffoldState.snackbarHostState.showSnackbar(
                        message = "This is your message",
                        actionLabel = "Do something."
                    )
                    when (snackbarResult) {
                        SnackbarResult.Dismissed -> Log.d("SnackbarDemo", "Dismissed") …
Run Code Online (Sandbox Code Playgroud)

android android-snackbar android-jetpack-compose

9
推荐指数
1
解决办法
2955
查看次数