我正在與Snackbar
和晶圓廠支持庫合作。 我想獲得Snackbar的高度,給出單線和多線消息的正確高度值。獲得小吃店支持庫的高度
var=mysnackbar.gethight();
但是這個代碼不工作,因爲snackbar
確實有gethight()
。
我正在與Snackbar
和晶圓廠支持庫合作。 我想獲得Snackbar的高度,給出單線和多線消息的正確高度值。獲得小吃店支持庫的高度
var=mysnackbar.gethight();
但是這個代碼不工作,因爲snackbar
確實有gethight()
。
這應該可能。將以像素爲單位給出Snackbar的高度。
int height = yourSnackbar.getView().getHeight();
參考文檔: https://developer.android.com/reference/android/support/design/widget/Snackbar.html#getView()
https://developer.android.com/reference/android/view/View.html#getHeight()
感謝您的重播,我嘗試了您的代碼並始終返回'0'值,請參閱我的代碼:http:// goo .gl/M8LHIE –
小吃吧將僅已展示()方法之後高度調用。嘗試撥打:
mSnackbar.show();
int height = mSnackbar.getView.getHeight();
或者您可以使用回調的小吃吧聽所示事件,並返回它的高度,如下圖所示:
mSnackbar.setCallback(new Snackbar.Callback {
@Override
Public void onDismissed(Snackbar snackbar, int event) {
}
@Override
Public void onShown(Snackbar snackbar) {
int height = snackbar.getView.getHeight();
}
)
mSnackbar.show();
mSnackbar.getView.getHeight()返回0 –
添加由@Grace編碼器
回答Snackbar.setCallback()已被棄用。
現在,您需要使用Snackbar.addCallback()
View parentView = findViewById(R.id.activity_main);
Snackbar snackbar = Snackbar.make(parentView, "Hello there.", Snackbar.LENGTH_SHORT);
snackbar.addCallback(new BaseTransientBottomBar.BaseCallback<Snackbar>() {
@Override
public void onShown(Snackbar transientBottomBar) {
int height = transientBottomBar.getView().getHeight();
parent.setPadding(0, 0, 0, height);
super.onShown(transientBottomBar);
}
@Override
public void onDismissed(Snackbar transientBottomBar, int event) {
parent.setPadding(0, 0, 0, 0);
super.onDismissed(transientBottomBar, event);
}
});
snackbar.show();
什麼是你想在你的情況acheive? – Droidwala
我正在使用'CoordinatorLayout',當'snackbar'出現時,'fab'向上移動,這部分工作很棒。但是如果在出現'小吃店'之前,我看不到'fab',然後出現'snackba'r,出現'snackbar'後我可見我的'fab','fab'可見錯誤的位置(在'snackbar'後面)以獲得'小吃棒'和'setTranslationY'的高度。我希望用我的壞英語理解:D @Droidwala –
有沒有必要做任何這樣的事情。我已經寫了幾週迴這個問題的答案..應該工作在你的情況... [http://stackoverflow.com/a/32777587/2819262] – Droidwala