@Override public void beforeOnLyaout() { if (mCategoryAdapter.hasItemViewBound && !mIsFakeSearchViewPositioned) { mListView.setOnLayoutListener(null); mIsFakeSearchViewPositioned = true; mListView.setSelectionFromTop( TRUE_DATA_ITEM_IDX, mTopView.getHeight() - (int) ShopApp.getContext() .getResources() .getDimension(R.dimen.fake_search_layout_diff)); } }
@Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.category_fragment, container, false); mFakeBg = view.findViewById(R.id.fake_bg); mListView = (BaseListView) view.findViewById(android.R.id.list); int listPadding = (int) ShopApp.getContext().getResources().getDimension(R.dimen.list_item_padding); mListView.setPadding(0, listPadding / 2, 0, listPadding); mSearchUi = view.findViewById(R.id.search_ui); mSearchUi.setOnClickListener(mSearchClickListener); mTopView = inflater.inflate(R.layout.fake_top_for_search, null); mTopViewContent = mTopView.findViewById(R.id.top_view_content); mTopViewContent.setBackgroundColor( ShopApp.getContext().getResources().getColor(R.color.fake_search_background)); mListView.addHeaderView(mTopView); mFakeSearchView = inflater.inflate(R.layout.fake_search_view, null); mIsFakeSearchViewPositioned = false; View fakeInput = mFakeSearchView.findViewById(R.id.fake_input); fakeInput.setOnClickListener(mSearchClickListener); View fakeButton = mFakeSearchView.findViewById(R.id.fake_button); fakeButton.setOnClickListener(mSearchClickListener); mFakeSearchView.setBackgroundColor( ShopApp.getContext().getResources().getColor(R.color.fake_search_background)); mListView.addHeaderView(mFakeSearchView); mListView.setOnLayoutListener(this); mCategoryAdapter = new CategoryAdapter(getActivity()); mCategoryListAdapter = new CategoryListAdapter(getActivity(), mCategoryAdapter, mItemClickListner); mListView.setAdapter(mCategoryListAdapter); ArrayList<Object> data = new ArrayList<Object>(); data.add(1); mCategoryListAdapter.updateData(data); mSearchButton = mSearchUi.findViewById(R.id.search_button); mSearchButton.setOnClickListener(mSearchClickListener); mInput = (AutoCompleteTextView) mSearchUi.findViewById(R.id.input); mInput.setOnEditorActionListener( new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_DONE) { mSearchButton.performClick(); return true; } return false; } }); mInput.addTextChangedListener( new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) {} @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {} @Override public void afterTextChanged(Editable s) { loadHint(); } }); mSearchEmptyArea = mSearchUi.findViewById(R.id.empty_area); mSearchEmptyArea.setOnClickListener(mSearchClickListener); mSearchHintListView = (ListView) mSearchEmptyArea.findViewById(android.R.id.list); mSearchHintListView.addHeaderView(inflater.inflate(R.layout.search_hint_list_top, null)); mSearchHintListAdapter = new SearchHintListAdapter(getActivity()); mSearchHintListView.setAdapter(mSearchHintListAdapter); mSearchHintListView.setOnItemClickListener( new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int positon, long id) { View v = view.findViewById(R.id.word); if (v != null && v instanceof TextView) { doSearch(((TextView) v).getText().toString()); } } }); mLoadingView = (EmptyLoadingView) view.findViewById(R.id.loading); return view; }