Articles of android snackbar

在没有视图的情况下制作小吃吧?

我想在用户打开谷歌地图活动时立即显示一个小吃吧,但事实是活动中没有视图用作活动的第一个参数(在Snackbar.make()的findViewById()中) 。 我该放什么? 这是java类代码: public class MapsActivity extends FragmentActivity implements OnMapReadyCallback { private GoogleMap mMap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps); // Obtain the SupportMapFragment and get notified when the map is ready to be used. SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; […]

将所有布局包装在CoordinatorLayout中是一个好习惯吗?

我正在考虑在我的应用中实现Android Snackbars的方法。 基本上,我希望能够在应用程序的任何位置显示Snackbar。 正如我发现的那样, android.support.design.widget.Snackbar在放入android.support.design.widget.CoordinatorLayout时表现最佳。 否则,我无法将其滑开,它显示在导航抽屉上,并且不与浮动操作按钮交互。 所以问题是: 将所有布局包装在CoordinatorLayout是一个好习惯,在BaseActivity中获取它的引用,以便它可以从几乎任何地方传递到Snackbar吗? 这似乎是确保Snackbar和其他布局组件正常运行的可靠方法,但是……好吧,意味着触摸所有布局并具有一个BaseActivity,该BaseActivity由所有其他活动扩展,并且可以从任何想要显示的片段访问小吃吧。 有没有更好的办法?

使用Espresso测试Snackbar节目

有没有办法使用Espresso测试小吃店出现的正确文字? 我有一个简单的电话来创建一个小吃吧 Snackbar.make(mView, “My text”, Snackbar.LENGTH_LONG).show(); 我没有运气就试过这个 onView(withText(“My text”)).inRoot(withDecorView(not(is(mActivityRule.getActivity().getWindow().getDecorView())))).check(matches(isDisplayed()));

Snackbar动作文本颜色不变

我想更改我的零食栏的动作文字颜色,但由于某种原因它不起作用。 我使用以下代码显示快餐栏: Snackbar.make(findViewById(R.id.root), “text”, Snackbar.LENGTH_LONG).setActionTextColor(R.color.yellow).setAction(“OK”, new View.OnClickListener() { @Override public void onClick(View view) { } }).show();

如何在Snackbar或Toast / Textview中显示表情/表情符号

我正在尝试在Snackbar / Toast通知中添加表情/表情符号。 这个表情符号是否需要图像资源或Unicode字符。 当我从下面的网站Unicode字符网站使用Unicode字符时,我得到string输出。 Snackbar.make(findViewById(android.R.id.content), \U+1F601 + "Done", Snackbar.LENGTH_LONG).show();

使用CoordinatorLayout时,AdView和FloatingActionButton重叠

将新的CoordinatorLayout合并到我的一个布局中之后,我遇到了Adview与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> 来源: https : //github.com/chrisbanes/cheesesquare/blob/master/app/src/main/res/layout/include_list_viewpager.xml 如果我采用相同的布局,并在FloatingActionButton下方包含AdView ,则会导致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 […]

具有SnackBar和CoordinatorLayout的FloatingActionButton将不适用于proguard

启用proguard时,这段简单的代码将无法正常工作: <?xml version="1.0" encoding="utf-8"?> <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/coordinator_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/show" android:layout_width="200dp" android:layout_height="wrap_content" android:layout_gravity="top" android:layout_marginTop="40dp" android:text="Show snackbar" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:layout_margin="16dp" android:src="@drawable/ic_save_white_24dp" app:layout_anchorGravity="bottom|right|end" /> </android.support.design.widget.CoordinatorLayout> 期望的行为是当FloatingActionButton在显示时被推到SnackBar ,但是直到禁用了proguard才会发生。 没有教程也涵盖了这一点,因为新项目默认情况下禁用了proguard;) 有没有人知道devise支持库的proguardconfiguration?

如何禁用小吃棒的轻扫 – 解散行为

有没有一种方法来防止用户通过滑动快餐栏来解雇? 我有一个在networkinglogin时显示小吃店的应用程序,我想避免它被解雇。 根据Nikola Despotoski的build议,我已经尝试了两种解决scheme: private void startSnack(){ loadingSnack = Snackbar.make(findViewById(R.id.email_login_form), getString(R.string.logging_in), Snackbar.LENGTH_INDEFINITE) .setAction("CANCEL", new OnClickListener() { @Override public void onClick(View view) { getOps().cancelLogin(); enableControls(); } }); loadingSnack.getView().setOnTouchListener(new View.OnTouchListener() { public long mInitialTime; @Override public boolean onTouch(View v, MotionEvent event) { if (v instanceof Button) return false; //Action view was touched, proceed normally. else { switch […]

Snackbar在按动button的同时隐藏浮动动作

我正在做小吃店和浮动行动button。 我使用协调员布局来使浮动操作button在快餐栏显示时出现/移动。 问题是我保持小吃店的行动。 点击浮动button时,小吃店popup,浮动操作button向上移动。 而当我按快餐行动项目时,浮动行动button隐藏在儿童小吃店下面。 而且,如果我连续按浮动动作button,那么也浮动动作button变得隐藏。 以下是我的代码。 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> 主要活动 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); […]

pipe理当前的View和Class <?>对象

我有一个应用程序范围的实用类AppUtils,我可以在这里发布应用程序的相关信息: 无论是作为一个SnackBar,当我在应用程序中 或通过通知pipe理器 例如当mesaages是作为一个Snackbar时,我需要当前显示的视图容器的轨道在Snackbar.make(view, text, length);使用它Snackbar.make(view, text, length); 当我想通过NotificationManager.notify(int, Builder);发布消息的时候NotificationManager.notify(int, Builder); 我需要在这里的类签名 Intent resultIntent = new Intent(this, ResultActivity.class); 因此,我在我的AppUtils: public static void setCurrentViewAndClass(View v, Class<?> c) { view = v; // view is static cls = c; // cls is static } 我可以从我的项目中的任何地方记住当前视图(对于Snackbar参数)和cls(对于通知意图)。 进一步来说,我清除这些参数,例如,当我离开应用程序的背景: public static void clearCurrentViewAndClass() { view = null; cls = null; […]