我在屏幕上显示了一个 ListView
,还有一个无限期显示的 Snackbar
。由于 Snackbar
,ListView
的最后一个元素被部分覆盖。
我正在尝试获取 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.Height
和 snackbarView.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/