我有一个抽象类,每个扩展我的片段。在这个课程中,我创建了:
private var snackbar: Snackbar? = null
override fun onNetworkConnectionChanged(isConnected: Boolean) {
if (isConnected) {
Log.d("some", "isConnected")
snackbar = activity?.buildWarning("soooome")
snackbar?.show()
}
else {
Log.d("some", "is not connected")
snackbar.dismiss()
}
}
但是当我收到日志:isConnected时,snackbar不会显示。
而且我还有snackbar
的下一个助手:
fun FragmentActivity.buildWarning(text: String) = getSnackbarAnchorView()?.buildWarning(text)
fun View.buildWarning(text: String) = buildSnackbar(
messageText = text,
bgColorResId = android.R.color.holo_orange_dark
)
private fun FragmentActivity.getSnackbarAnchorView(): View? {
return if (this is SnackbarAnchorContainer) getSnackbarAnchorView() else null
}
private fun View.buildSnackbar(
messageText: String,
@ColorRes bgColorResId: Int
): Snackbar {
val snackbar = Snackbar.make(this, messageText, Snackbar.LENGTH_INDEFINITE)
val textView = snackbar.view.findViewById<TextView>(R.id.snackbar_text)
textView.minimumHeight = context.resources.getDimension(R.dimen.actionbar_height).toInt()
snackbar.view.setBackgroundColor(ContextCompat.getColor(context, bgColorResId))
return snackbar
}
interface SnackbarAnchorContainer {
fun getSnackbarAnchorView(): View?
}
Q:如何显示我的小吃店?
为视图的根布局分配ID(例如:main_layout)并使用该视图制作小吃店
例如:
Snackbar.make(main_layout, "Testing Snackbar", Snackbar.LENGTH_SHORT).show()