android - 获取 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.Height
and snackbarView.MinimumHeight
,但它始终返回 0。
有人可以帮我解决这个问题吗?
解决方案
我对 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);
});
我希望它有帮助
推荐阅读
- jsp - 如何根据jsp下拉列表中选择的值获取文本框中的值
- r - R - 组内求和,并且仅当另一个变量具有连续值时
- sql - 在 MS Access 中使用选项组时如何修复“对象不支持此属性或方法”错误?
- react-native - expo 我们需要两个谷歌地图 api 密钥吗?
- java - java.lang.StackOverflowError:使用 gson 序列化对象时为 null
- mysql - 如何选择每组中具有最大值的第一行?
- html - Button error in Firefox but not in Chrome
- c# - Capping out when looping through every email in a folder
- gnuradio - 无法在 GNU Radio 中检测到 B200
- python - Tensorflow 2.0 将训练后的参数保存到新文件中