首页 > 解决方案 > 获取 Xamarin.android 中 Snackbar 的高度

问题描述

ListView在屏幕上显示了一个,并且有一个Snackbar无限期地显示。的最后一个元素ListView被部分覆盖,因为Snackbar.

我正在尝试获取 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.Heightand snackbarView.MinimumHeight,但它始终返回 0。

有人可以帮我解决这个问题吗?

标签: androidxamarinxamarin.android

解决方案


我对 xamarin 不熟悉,但我与 snakbar 一起工作过很多次,所以可以这样工作

您需要使用 view.post 因为 height 属性仅在视图膨胀/运行后才可用

参考: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);

});

我希望它有帮助


推荐阅读