improve pre draw listener
This commit is contained in:
@@ -84,6 +84,7 @@ public class ReblogOrReplyLineStatusDisplayItem extends StatusDisplayItem{
|
|||||||
public static class Holder extends StatusDisplayItem.Holder<ReblogOrReplyLineStatusDisplayItem> implements ImageLoaderViewHolder{
|
public static class Holder extends StatusDisplayItem.Holder<ReblogOrReplyLineStatusDisplayItem> implements ImageLoaderViewHolder{
|
||||||
private final TextView text, extraText;
|
private final TextView text, extraText;
|
||||||
private final View separator;
|
private final View separator;
|
||||||
|
private int currentOrientation = -1;
|
||||||
|
|
||||||
public Holder(Activity activity, ViewGroup parent){
|
public Holder(Activity activity, ViewGroup parent){
|
||||||
super(activity, R.layout.display_item_reblog_or_reply_line, parent);
|
super(activity, R.layout.display_item_reblog_or_reply_line, parent);
|
||||||
@@ -94,6 +95,8 @@ public class ReblogOrReplyLineStatusDisplayItem extends StatusDisplayItem{
|
|||||||
itemView.getViewTreeObserver().addOnPreDrawListener(() -> {
|
itemView.getViewTreeObserver().addOnPreDrawListener(() -> {
|
||||||
if (item == null) return true;
|
if (item == null) return true;
|
||||||
int orientation = ((LinearLayout) itemView).getOrientation();
|
int orientation = ((LinearLayout) itemView).getOrientation();
|
||||||
|
if (orientation == currentOrientation) return true; // only run once
|
||||||
|
currentOrientation = orientation;
|
||||||
extraText.setPaddingRelative(extraText.getPaddingStart(), item.extra != null && orientation == LinearLayout.VERTICAL ? 0 : V.dp(16), extraText.getPaddingEnd(), extraText.getPaddingBottom());
|
extraText.setPaddingRelative(extraText.getPaddingStart(), item.extra != null && orientation == LinearLayout.VERTICAL ? 0 : V.dp(16), extraText.getPaddingEnd(), extraText.getPaddingBottom());
|
||||||
separator.setVisibility(item.extra != null && orientation == LinearLayout.HORIZONTAL ? View.VISIBLE : View.GONE);
|
separator.setVisibility(item.extra != null && orientation == LinearLayout.HORIZONTAL ? View.VISIBLE : View.GONE);
|
||||||
((LinearLayout) itemView).removeView(extraText);
|
((LinearLayout) itemView).removeView(extraText);
|
||||||
|
|||||||
Reference in New Issue
Block a user