我有一个RecyclerView
由标题和列表项组成,对于每个标题,我想在其边缘添加一个浮动操作按钮。但是我的按钮被标题视图剪切:
如何解决这种情况?
我已尝试在标题视图上设置android:clipChildren="false"
。但这对我没有任何作用。我还担心此选项可能会影响性能,因为我记得此设置强制父ViewGroup
重绘其子项的所有。当其中一个是脏的时。
答案 0 :(得分:1)
将您的按钮放在RecyclerView
旁边/上方。将滚动侦听器附加到RecyclerView
,然后滚动:
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
View firstChild = recyclerView.getChildAt(0);
int ixFirstChild = (Integer) firstChild.getTag(); // Assumes your Adapter gives indices to the views in onBindViewHolder
int ixHeader = mAdapter.foldersHeaderPosition() - ixFirstChild; //Assumes you know where the header is
if (ixHeader >= -1 && ixHeader < recyclerView.getChildCount()) {
View header = recyclerView.getChildAt(ixHeader+1);
int top = header.getTop();
btn.setVisibility(View.VISIBLE);
int hgt = btn.getHeight();
ViewHelper.setY(btn, top - (hgt / 2));
} else {
btn.setVisibility(View.GONE);
}
}