android - 在 Xamarin.android 中获取 Snackbar 的高度

标签 android xamarin xamarin.android

我在屏幕上显示了一个 ListView,还有一个无限期显示的 Snackbar。由于 SnackbarListView 的最后一个元素被部分覆盖。

我正在尝试获取 Snackbar 的高度,并以编程方式将其作为下边距提供给 ListView。

Snackbar snackbar = 
Snackbar.Make(_refresher,"message",Snackbar.LengthIndefinite);

snackbar.Show();
View snackbarView = (Snackbar.SnackbarLayout)snackbar.View;
int h = snackbarView.MeasuredHeightAndState;

但 Snackbar 的高度始终为 0。 我还尝试了 snackbarView.HeightsnackbarView.MinimumHeight,但它总是返回 0。

谁能帮我解决这个问题?

最佳答案

我不熟悉 xamarin,但我多次使用 snakbar,所以它可以像这样工作

你需要使用 view.post 因为高度属性只有在 View 膨胀/运行后才可用

引用:https://developer.xamarin.com/api/type/Android.Views.View/

引用:https://developer.xamarin.com/api/type/Java.Lang.IRunnable/

snackbar.View.Post(() => 
{

int h=snackbar.View.Height();
Log.Error ("Height", "Height"+h);

});

希望对您有所帮助

关于android - 在 Xamarin.android 中获取 Snackbar 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52925613/

相关文章:

iphone - J2ME VS Android VS iPhone VS Symbian VS Windows CE

android - 如何从 woocommerce Rest api 获取特定的 json 字段

xamarin - 我可以在同一项目的UI上同时使用Xamarin.Forms和Xamarin.Native吗?

c# - Xamarin Forms XAML - 无法从 URL 列表创建多个图像

android - 带有图像的 Xamarin ListView 滚动不流畅

android - 如何在 Android 7.0+ 中检索 SD 卡的序列号?

Android - 带参数的 HttpGet

c# - Xamarin Sqlite 本地文件路径

android - Listview Itemclick 事件不触发 android xamarin

android - 将 SimpleAdapter 与 Mono for Android 结合使用