Articles of android snackbar

自定义主题干扰snackbar背景颜色

试用新的设计支持库,我添加了一个小吃店; 但与其主背景不同,文本区域未使用默认值#323232着色。 相反,它看起来像这样 。 它似乎从我的styles.xml自定义主题中定义的android:background值中获取颜色,如下所示: … #4f4f5e … 如果我试着用它强行着色 View snackbarView = snackbar.getView(); snackbarView.setBackgroundColor(Color.YELLOW); 它只影响主背景, 像这样 ,文本背景仍然被自定义主题着色。 有没有办法保持我的自定义主题,并有一个标准的小吃吧? 谢谢!

如何将Android SnackBar调整到屏幕上的特定位置

掌握新的android小吃吧,我试图将它设置为特定的y坐标。 它似乎甚至不可能。 我已经尝试过获取快餐栏视图的父级,但是,没有什么可以让父母为它设置它的位置。 mSnackBar.getView().getParent(); 在挖掘实际的类时,有一个mView的实例,而mParent是私有的,无论如何都无法访问。 https://developer.android.com/reference/android/support/design/widget/Snackbar.html

片状Android Espresso测试 – Snackbar

1)所有正在测试的设备/仿真器都禁用了animation。 2)我有一个@BeforeClass来构建我的Credentials对象。 3)我有一个在@Before中注册的IntenServiceIdlingResource和一个EventBusIdlingResource。 4)单击登录按钮时,IntentService将触发。 在这种情况下,服务器(模拟服务器)返回500错误。 该信息通过greenrobot的EventBus从IntentService发回UI,并显示Snackbar并显示错误消息。 这是测试的代码: @Test public void a_userNamePasswordTest() throws Exception { // email input ViewInteraction userNameView = onView(withId(R.id.email)); // verify it’s on screen and enabled userNameView.check(matches(isDisplayed())).check(matches(isEnabled())); // set the username userNameView.perform(scrollTo(), replaceText(credentials.username), closeSoftKeyboard()); // password input ViewInteraction passwordView = onView(withId(R.id.password)); // verify it’s on screen and enabled passwordView.check(matches(isDisplayed())).check(matches(isEnabled())); // set the password. […]

当小吃栏在android中显示时,浮动动作按钮不会上升

我在我的应用程序中使用小吃栏和FAB同一页, 每当Snackbar显示浮动操作按钮不上升 。 我使用第三方库attachToListView工作正常 import com.melnykov.fab.FloatingActionButton; 如果我使用默认库“无法解析attachToListView” import android.support.design.widget.FloatingActionButton; 我的需要: attachToListView应该工作( 当Listview向下滚动FAB时将消失 )。 每当Snackbar显示浮动操作按钮时应该上升 。 帮帮我如何解决这个问题。 第三方图书馆链接 编辑:1 我删除了第三方库添加了默认导入( 导入android.support.design.widget.FloatingActionButton ),FAB正在上升但是Attachtolistivew没有解决。 编辑:2 我使用Listview在我的活动中,使用FAB和Snackbar。 所以我需要像FAB一样的两个选项在Snackbar打开时以及当Listview向下滚动时应该隐藏FAB 。 我的SnackBar代码: Snackbar snack = Snackbar.make(fab1, ” Successfully …!”,Snackbar.LENGTH_SHORT); View snackbarView = snack.getView(); snackbarView.setBackgroundColor(Color.parseColor(“#f44336”)); snack.show(); Main.java import com.melnykov.fab.FloatingActionButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fabview); fab1 = (FloatingActionButton) findViewById(R.id.fab); fab1.setShadow(true); […]

有没有办法在Snackbar上添加图标?

这是我的Snackbar代码: Snackbar.make(viewHolder.productView, “Some Text Here ..”, Snackbar.LENGTH_SHORT) .setAction(“I want be a icon here instead TEXT”, new View.OnClickListener() { @Override public void onClick(View v) { // Perform anything for the action selected } }) .show(); 无论如何在.setAction添加图标而不是文本? 我知道谷歌建议不要在Snackbar中使用图标 ,但我想使用它。

什么时候使用Snackbar isQueued()? (如何排队小吃店)

如果我连续多次调用快餐栏,则只显示最后一个零食栏项目。 例如,使用下面的代码,仅显示第3项。 对于第1项和第2项,似乎忽略了Snackbar.LENGTH_LONG(并设置为零?)。 Snackbar.make(view, “Item 1”, Snackbar.LENGTH_LONG).show(); Snackbar.make(view, “Item 2”, Snackbar.LENGTH_LONG).show(); Snackbar.make(view, “Item 3”, Snackbar.LENGTH_LONG).show(); 但在谷歌文档中 ,我发现可以对消息进行排队。 public boolean isShownOrQueued () Returns whether this Snackbar is currently being shown, or is queued to be shown next. 那么我们如何实际排队小吃店呢?

SnackBar和fitsSystemWindow

我有一个使用fitsSystemWindows的应用程序能够在Navigation-和Status-Bar后面绘制背景 – 不幸的是,SnackBar似乎忽略了容器中的fitsSystemWindows = true。 我将问题归结为这个最小的应用程序: 样式: @color/accent_material_dark false true true 布局: 活动: public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(final View v) { Snackbar.make(v,”This Snackbar should fitSystemWindows”,Snackbar.LENGTH_INDEFINITE).show(); } }); } } 有人知道一些解决方法吗? 我发布了最小的应用程序来显示这里的问题: https : //github.com/ligi/SnackBarFitsSystemWindowProblem

支持库中的Snackbar不包含OnDismissListener()?

我想在最新的设计支持库中实现新的Snackbar,但是它的提供方式对我来说似乎是违反直觉的,而且我认为很多其他人使用它。 当用户执行重要操作时,我想允许他们通过Snackbar撤消它,但似乎没有办法检测它何时被解除以执行操作。 我可以通过以下方式进行操作: 用户采取行动。 显示Snackbar并更新UI,就像操作已完成一样(即看起来数据已发送到数据库,但实际上还没有)。 如果用户按下“撤消”,则还原UI更改。 如果没有,当Snackbar被解散时,它将发送数据。 但是因为我没有看到任何可访问的OnDismissListener,所以我必须: 用户采取行动。 立即将信息发送到数据库并更新UI。 如果用户按下“撤消”,则向数据库发送另一个调用以删除刚刚添加的数据并恢复UI更改。 我真的想避免必须对数据库进行两次调用,只需在应用程序知道它是安全的时候发送一个(用户已经避免按“撤消”)。 我注意到通过EventListener在第三方库中实现了这一点,但我真的很想坚持使用Google库。

如何防止我的snackbar文本在Android上被截断?

我正在显示一个带有相当长文本消息的快餐栏,并且在纵向模式下在手机上它看起来很好。 但是在平板电脑上它似乎只允许1行文本,因此它被省略了 无论如何我可以在平板电脑风景中获得2线?

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

我想在用户打开谷歌地图活动时立即显示一个小吃吧,但事实是活动中没有视图用作活动的第一个参数(在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; […]