翻译动画后更改视图高度?
Posted
技术标签:
【中文标题】翻译动画后更改视图高度?【英文标题】:Change View height after translation animation? 【发布时间】:2021-08-13 17:54:48 【问题描述】:在我的活动中,我有一个BottomNavigationView
和一个RecyclerView
,我想做的是在滚动视图时隐藏BottomNavigationView
,我正在使用此代码:
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener()
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy)
super.onScrolled(recyclerView, dx, dy);
BottomNavigationView navigationView = requireActivity().findViewById(R.id.bottom_navigation_view);
if (recyclerView.getScrollState() == RecyclerView.SCROLL_STATE_DRAGGING && dy > 0)
navigationView.animate()
.translationY(navigationView.getHeight());
else if(recyclerView.getScrollState() == RecyclerView.SCROLL_STATE_DRAGGING && dy < 0)
navigationView.animate()
.translationY(0);
);
这很好用,只是它仍然显示视图的边界,所以在隐藏BottomNavigationView
后,我得到一个空矩形。使视图高度跟随平移的最佳方法是什么?
【问题讨论】:
【参考方案1】:我看不出你是如何“隐藏”BottomNavigationView
但是如果你使用
BottomNavigationView.setVisibility(View.INVISIBLE);
隐藏视图但保持其宽度和高度。
应该是
BottomNavigationView.setVisibility(View.GONE);
隐藏视图并使宽度 = 0 和高度 = 0
【讨论】:
在代码中有导航视图高度的 Y 平移,它“隐藏”了视图但视图的边界仍然存在,只是一个空白视图以上是关于翻译动画后更改视图高度?的主要内容,如果未能解决你的问题,请参考以下文章