我正在尝试在MainActivity代码中显示一个快餐栏。被称为显示小吃店的方法如下。
private void showSnackBar(int content_string, int action_string,
View.OnClickListener listener) {
Snackbar.make(R.id.myCoordinatorLayout,
getString(explanation_string),
Snackbar.LENGTH_INDEFINITE)
.setAction(getString(action_string), listener)
.show();
}
我使用以下调用
调用此方法showSnackBar(R.string.content_string,
R.string.action_string,
new View.OnClickListener() {
@Override
public void onClick(View v) {
//Some operation
}
});
但是,在showSnackbar方法中我得到一个错误,说无法解析Snackbar.show(int,java.lang.String,int)。如果有人能够指出我在这里缺少什么,那将是有帮助的,这就是错误。 这些是我在build.gradle文件中添加的依赖项
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
compile 'com.google.android.gms:play-services-location:11.0.2'
compile "com.android.support:support-core-utils:25.4.0"
compile 'com.android.support:design:25.3.1'
}
答案 0 :(得分:1)
现在在02/06/2018,配置'compile'已更改为'implementation' 像这样
implementation 'com.android.support:design:25.3.1'
答案 1 :(得分:0)
Snackbar将View
作为第一个参数而不是视图的id。这是docs for the method.
make(View view, CharSequence text, int duration)
因此,不要传递id,而是传递膨胀的视图。
答案 2 :(得分:0)
Snackbars 提供有关操作的轻量级反馈。他们表现出一个 移动屏幕底部的简短消息和左下方的消息 更大的设备。
使用
进行编译CoordinatorLayout's Object
<强> FYI 强>
第一个参数应为 R.id
,而不是 Snackbar.make(myCoordinatorLayoutOBJ,getString(explanation_string),Snackbar.LENGTH_INDEFINITE).setAction(getString(action_string), listener).show();
。
RecyclerView.OnItemTouchListener