Material Design网站提到了一个名为Snackbar的类似Toast的新元素:http://www.google.com/design/spec/components/snackbars-and-toasts.html
Android L预览SDK文档(抱歉无法链接,因为它只能下载)在类列表中没有提及Snackbar或者在Toast类文档中没有提到修饰符。我错过了一些明显的东西,还是应该建立自己的Snackbar.java?
答案 0 :(得分:24)
更新2015-05-29:
Google发布了一个Design Support Library,其中包含Snackbar和其他Material Design小部件。
原始答案中提到的Snackbar lib现已弃用。
原始回答
我确信Google最终会将其包含在未来的SDK中,以及预览SDK中也缺少的浮动操作按钮。
正如@friedrich nietzche指出的那样,我实现了一个库,在你的项目中包含Snackbar
。
https://github.com/nispok/snackbar
希望它有所帮助!
答案 1 :(得分:4)
FWIW,
L Developer Preview似乎没有Snackbar
实施。我还实施了一个Snackbar library,其目的是尽可能接近material design guidelines。感谢。
答案 2 :(得分:3)
Mabye在这看一看。 http://www.williammora.com/2014/08/snackbar-android-library.html
我猜测原生版本最终会出现在sdk中。我同意这有点奇怪。
答案 3 :(得分:1)
Snackbar实际上只是一个Crouton,有一些边距。 Crouton目前的形式只支持添加到ViewGroup的start(第0项),但是你可以在my github找到对Crouton,DownUnderMode的“strayan”增强。 请注意,官方的Crouton库和DownUnderMode版本有点不同步(希望在2058年接受DownUnderMode拉取请求时修复)。
答案 4 :(得分:0)
使用设计库我们可以实现Android 2.1以上的所有版本。
以下是工作示例代码http://www.feelzdroid.com/2015/06/snackbar-android-example-using-design-support-library.html。
如果您需要任何帮助,请删除评论。
答案 5 :(得分:0)
这是在android
中实现snackbar的简单方法步骤1.添加支持库23并使用
编译项目compile 'com.android.support:appcompat-v7:23.0.1'
步骤2.在活动文件中添加坐标布局
<android.support.design.widget.CoordinatorLayout 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:id="@+id/coordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
</android.support.design.widget.CoordinatorLayout>
步骤3.现在在MainActivity.java中添加以下代码以实现snackbar
public class MainActivity extends AppCompatActivity {
CoordinatorLayout coordinatorLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinatorLayout);
ShowSnack();
}
public void ShowSnack() {
Snackbar snackbar = Snackbar.make(coordinatorLayout, "Snackbar Label", Snackbar.LENGTH_LONG);
snackbar.setAction("Action", new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Action", Toast.LENGTH_LONG).show();
}
});
snackbar.setActionTextColor(Color.RED);
View snackbarView = snackbar.getView();
snackbarView.setBackgroundColor(Color.DKGRAY);
TextView textView = (TextView) snackbarView.findViewById(android.support.design.R.id.snackbar_text);
textView.setTextColor(Color.YELLOW);
snackbar.show();
}
}
希望这对你有用。
有关更多Android教程,请关注此博客:Trinity Tuts