Fix search layout crash

This commit is contained in:
NekoInverter committed 2020-12-29 14:24:39 +08:00
1 parent 6d0720e25f
commit 6172c6b7f1
1 file changed
+7 -10
@@ -35,6 +35,7 @@ import android.widget.TextView;
import androidx.annotation.IntDef;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.SwitchCompat;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -109,6 +110,7 @@ public class SearchLayout extends EasyRecyclerView implements CompoundButton.OnC
setAdapter(mAdapter);
setHasFixedSize(true);
setClipToPadding(false);
((DefaultItemAnimator) getItemAnimator()).setSupportsChangeAnimations(false);
int interval = resources.getDimensionPixelOffset(R.dimen.search_layout_interval);
int paddingH = resources.getDimensionPixelOffset(R.dimen.search_layout_margin_h);
int paddingV = resources.getDimensionPixelOffset(R.dimen.search_layout_margin_v);
@@ -125,7 +127,7 @@ public class SearchLayout extends EasyRecyclerView implements CompoundButton.OnC
mNormalSearchModeHelp = normalView.findViewById(R.id.normal_search_mode_help);
mEnableAdvanceSwitch = normalView.findViewById(R.id.search_enable_advance);
mNormalSearchModeHelp.setOnClickListener(this);
mEnableAdvanceSwitch.setOnCheckedChangeListener(SearchLayout.this);
mEnableAdvanceSwitch.setOnCheckedChangeListener(this);
mEnableAdvanceSwitch.setSwitchPadding(resources.getDimensionPixelSize(R.dimen.switch_padding));
// Create advance view
@@ -138,6 +140,9 @@ public class SearchLayout extends EasyRecyclerView implements CompoundButton.OnC
// Create action view
mActionView = mInflater.inflate(R.layout.search_action, null);
mActionView.setLayoutParams(new RecyclerView.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
mAction = mActionView.findViewById(R.id.action);
mAction.addOnTabSelectedListener(this);
}
@@ -274,18 +279,13 @@ public class SearchLayout extends EasyRecyclerView implements CompoundButton.OnC
post(() -> {
int oldItemCount = mAdapter.getItemCount();
mSearchMode++;
if (mSearchMode > SEARCH_MODE_IMAGE) {
mSearchMode = SEARCH_MODE_NORMAL;
}
mSearchMode = tab.getPosition();
int newItemCount = mAdapter.getItemCount();
mAdapter.notifyItemRangeRemoved(0, oldItemCount - 1);
mAdapter.notifyItemRangeInserted(0, newItemCount - 1);
mSearchMode = tab.getPosition();
if (mHelper != null) {
mHelper.onChangeSearchMode();
}
@@ -346,9 +346,6 @@ public class SearchLayout extends EasyRecyclerView implements CompoundButton.OnC
if (viewType == ITEM_TYPE_ACTION) {
ViewUtils.removeFromParent(mActionView);
mActionView.setLayoutParams(new RecyclerView.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
view = mActionView;
} else {
view = mInflater.inflate(R.layout.search_category, parent, false);