fix:修复房间在线列表 RTL适配问题
This commit is contained in:
@@ -82,8 +82,17 @@ class RoomOnlineWidget : FrameLayoutRoomWidget, RoomWidget {
|
||||
false
|
||||
)
|
||||
)
|
||||
val isRTL = UiUtils.isRtl(context)
|
||||
binding.recyclerView.outlineProvider = object : ViewOutlineProvider() {
|
||||
override fun getOutline(view: View?, outline: Outline?) {
|
||||
if (isRTL) {
|
||||
outline?.setRect(
|
||||
UiUtils.dip2px(9f),
|
||||
0,
|
||||
(view?.width ?: 0),
|
||||
(view?.height ?: 0),
|
||||
)
|
||||
} else {
|
||||
outline?.setRect(
|
||||
0,
|
||||
0,
|
||||
@@ -92,6 +101,7 @@ class RoomOnlineWidget : FrameLayoutRoomWidget, RoomWidget {
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
binding.recyclerView.clipToOutline = true
|
||||
}
|
||||
|
||||
|
@@ -5,6 +5,8 @@ import android.view.View;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.example.lib_utils.UiUtils;
|
||||
|
||||
/**
|
||||
* Created by lvzebiao on 2018/9/27.
|
||||
*/
|
||||
@@ -17,6 +19,8 @@ public class VerticalDecoration extends RecyclerView.ItemDecoration {
|
||||
/**如果尾需要则为ture*/
|
||||
private boolean last;
|
||||
|
||||
private Boolean isRTL;
|
||||
|
||||
public VerticalDecoration(int px, boolean first, boolean last) {
|
||||
this.px = px;
|
||||
this.first = first;
|
||||
@@ -26,6 +30,9 @@ public class VerticalDecoration extends RecyclerView.ItemDecoration {
|
||||
@Override
|
||||
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
|
||||
super.getItemOffsets(outRect, view, parent, state);
|
||||
if (isRTL == null) {
|
||||
isRTL = UiUtils.INSTANCE.isRtl(parent.getContext());
|
||||
}
|
||||
int position = parent.getChildAdapterPosition(view);
|
||||
int left = 0, right = 0;
|
||||
if (position == 0) {
|
||||
@@ -40,6 +47,10 @@ public class VerticalDecoration extends RecyclerView.ItemDecoration {
|
||||
} else {
|
||||
right = px;
|
||||
}
|
||||
if (isRTL) {
|
||||
outRect.set(right, 0, left, 0);
|
||||
} else {
|
||||
outRect.set(left, 0, right, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user