diff --git a/app/build.gradle b/app/build.gradle index 6d9f20ab76..5a9c471e74 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -256,7 +256,7 @@ dependencies { kapt "android.arch.persistence.room:compiler:${archRoomVersion}" implementation "android.arch.persistence.room:rxjava2:${archRoomVersion}" - implementation 'com.google.android:flexbox:0.2.2' + implementation 'com.google.android:flexbox:1.0.0' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" kapt 'com.android.databinding:compiler:3.1.3' diff --git a/app/src/main/java/com/gh/common/util/Extensions.kt b/app/src/main/java/com/gh/common/util/Extensions.kt index 4ae2d48801..fa3fa5b8bd 100644 --- a/app/src/main/java/com/gh/common/util/Extensions.kt +++ b/app/src/main/java/com/gh/common/util/Extensions.kt @@ -179,4 +179,12 @@ fun Map.createRequestBody(): RequestBody { // 对在浏览器(WebView)显示的路径进行转码 fun String.decodeURI(): String { return URI(null, null, this, null).rawPath -} \ No newline at end of file +} + +/** + * 根据手机的分辨率从 dip(像素) 的单位 转成为 px + */ +fun Float.dip2px(): Int { + val scale = HaloApp.getInstance().application.resources.displayMetrics.density + return (this * scale + 0.5f).toInt() +} diff --git a/app/src/main/java/com/gh/common/util/SyncDataBetweenPageHelper.kt b/app/src/main/java/com/gh/common/util/SyncDataBetweenPageHelper.kt index 954a178f36..8772564f33 100644 --- a/app/src/main/java/com/gh/common/util/SyncDataBetweenPageHelper.kt +++ b/app/src/main/java/com/gh/common/util/SyncDataBetweenPageHelper.kt @@ -6,6 +6,7 @@ import android.content.Intent import android.os.Parcelable import com.gh.common.annotation.Synchronize import com.gh.common.util.SyncDataBetweenPageHelper.resultHandle +import com.gh.common.util.SyncDataBetweenPageHelper.startActivityForResult import com.gh.gamecenter.entity.RatingComment import com.gh.gamecenter.gamedetail.rating.RatingAdapter import com.gh.gamecenter.gamedetail.rating.RatingReplyActivity @@ -14,6 +15,7 @@ import com.gh.gamecenter.gamedetail.rating.RatingReplyActivity * 页面之间实现数据同步 * 需要同步的数据,在相应的字段加上[Synchronize]注解,关键方法[resultHandle] * 如无特殊情况,尽量使用下面方法进行页面联动 + * 注意: [startActivityForResult] intent的数据实体key必须是Class的SimpleName * ---------------------------------------------------------------- * 具体参考(游戏详情:评论列表<-->评论详情): * 数据实体=>[RatingComment] diff --git a/app/src/main/java/com/gh/common/view/DrawableView.kt b/app/src/main/java/com/gh/common/view/DrawableView.kt index f158a16f7b..7b0944ccc8 100644 --- a/app/src/main/java/com/gh/common/view/DrawableView.kt +++ b/app/src/main/java/com/gh/common/view/DrawableView.kt @@ -3,7 +3,10 @@ package com.gh.common.view import android.graphics.Color import android.graphics.drawable.Drawable import android.graphics.drawable.GradientDrawable +import android.support.annotation.ColorRes +import android.support.v4.content.ContextCompat import com.gh.common.util.DisplayUtils +import com.halo.assistant.HaloApp object DrawableView { @@ -20,4 +23,12 @@ object DrawableView { drawable.cornerRadius = DisplayUtils.dip2px(2F).toFloat() return drawable } + + @JvmStatic + fun getOvalDrawable(@ColorRes colorId: Int): Drawable { + val drawable = GradientDrawable() + drawable.setColor(ContextCompat.getColor(HaloApp.getInstance().application, colorId)) + drawable.cornerRadius = DisplayUtils.dip2px(999F).toFloat() + return drawable + } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/SearchActivity.java b/app/src/main/java/com/gh/gamecenter/SearchActivity.java index 146b8c6b28..0c0db50e75 100644 --- a/app/src/main/java/com/gh/gamecenter/SearchActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SearchActivity.java @@ -5,6 +5,7 @@ import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; +import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.text.Editable; import android.text.InputFilter; @@ -15,7 +16,6 @@ import android.view.inputmethod.EditorInfo; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; -import android.widget.Toast; import com.gh.base.BaseActivity; import com.gh.common.util.DataCollectionUtils; @@ -24,11 +24,10 @@ import com.gh.common.util.GdtHelper; import com.gh.common.util.TextHelper; import com.gh.gamecenter.db.SearchHistoryDao; import com.gh.gamecenter.eventbus.EBSearch; +import com.gh.gamecenter.search.SearchDefaultFragment; import com.gh.gamecenter.search.SearchGameDetailFragment; import com.gh.gamecenter.search.SearchGameListFragment; -import com.gh.gamecenter.search.SearchHistoryFragment; import com.lightgame.utils.Util_System_Keyboard; -import com.lightgame.utils.Utils; import com.qq.gdt.action.ActionType; import org.greenrobot.eventbus.Subscribe; @@ -181,9 +180,9 @@ public class SearchActivity extends BaseActivity { } } }); - searchInput.setFilters(new InputFilter[]{TextHelper.getFilter(50,"最多输入50个字")}); + searchInput.setFilters(new InputFilter[]{TextHelper.getFilter(50, "最多输入50个字")}); - findViewById(R.id.btnGoBack).setOnClickListener(v -> finish()); + findViewById(R.id.btnGoBack).setOnClickListener(v -> onBackPressed()); } private void search(String type, String key) { @@ -247,8 +246,8 @@ public class SearchActivity extends BaseActivity { FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); switch (model) { case 0: - SearchHistoryFragment search_history_fragment = new SearchHistoryFragment(); - transaction.replace(R.id.search_result, search_history_fragment); + SearchDefaultFragment search_history_fragment = new SearchDefaultFragment(); + transaction.replace(R.id.search_result, search_history_fragment, SearchDefaultFragment.class.getSimpleName()); currentTab = 0; break; case 1: @@ -292,6 +291,16 @@ public class SearchActivity extends BaseActivity { } } + @Override + protected boolean handleBackPressed() { + Fragment fragment = getSupportFragmentManager().findFragmentByTag(SearchDefaultFragment.class.getSimpleName()); + if (fragment == null) { + setResultPresentModel(0); + return true; + } + return super.handleBackPressed(); + } + public static String convertSearchType(String type) { switch (type) { case "auto": diff --git a/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt index a06e272ef6..5eaeae71a3 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt @@ -90,7 +90,9 @@ data class SettingsEntity( @SerializedName("default") var defaultData: List? = listOf(), @SerializedName("remen") - var remenData: List? = listOf()) + var hotSearch: List? = listOf(), + @SerializedName("tag") + var hotTag: List? = listOf()) data class Suggestion( var plugin: List? = listOf(), @@ -128,4 +130,10 @@ data class SettingsEntity( var packages: List? = listOf() ) + data class HotSearch( + @SerializedName("_id") + var id: String, + var name: String, + val icon: String) + } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/qa/search/base/BaseAskSearchAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/search/base/BaseAskSearchAdapter.kt index c2d042ef94..bb60a2cd2e 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/search/base/BaseAskSearchAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/search/base/BaseAskSearchAdapter.kt @@ -42,7 +42,7 @@ abstract class BaseAskSearchAdapter(context: Context, ?.replace(translationKey?.toRegex()!!, getHtmlKeyword()) } - // 特殊符合转译 + // 特殊符号转译 private fun escapeExprSpecialWord(s: String?): String? { var keyword = s if (!keyword.isNullOrEmpty()) { diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchDefaultFragment.kt b/app/src/main/java/com/gh/gamecenter/search/SearchDefaultFragment.kt new file mode 100644 index 0000000000..ecb540b323 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/search/SearchDefaultFragment.kt @@ -0,0 +1,127 @@ +package com.gh.gamecenter.search + +import android.graphics.Color +import android.os.Bundle +import android.support.v7.widget.GridLayoutManager +import android.view.Gravity +import android.view.ViewGroup +import android.widget.TextView +import com.gh.base.fragment.BaseFragment +import com.gh.common.constant.Config +import com.gh.common.util.DialogUtils +import com.gh.common.util.DirectUtils +import com.gh.common.util.DisplayUtils +import com.gh.common.util.dip2px +import com.gh.common.view.DrawableView +import com.gh.gamecenter.R +import com.gh.gamecenter.databinding.FragmentSearchDefaultBinding +import com.gh.gamecenter.db.SearchHistoryDao +import com.gh.gamecenter.entity.LinkEntity +import com.gh.gamecenter.entity.SettingsEntity +import com.gh.gamecenter.eventbus.EBSearch +import com.google.android.flexbox.FlexboxLayout +import com.lightgame.utils.Util_System_Keyboard +import org.greenrobot.eventbus.EventBus + + +class SearchDefaultFragment : BaseFragment() { + + private lateinit var mBinding: FragmentSearchDefaultBinding + private lateinit var mSearchHistoryDao: SearchHistoryDao + + private var mHistoryList: List? = null + private var mHotTagList: List? = null + private var mHotSearchList: List? = null + + // FlexboxLayout:maxLine 不符合需求 暂且用这种方法实现(历史:最多两行,标签:一行) + private val mHistoryFlexMaxHeight = DisplayUtils.dip2px(85F) + private val mTagFlexMaxHeight = DisplayUtils.dip2px(45F) + + override fun getLayoutId(): Int { + return R.layout.fragment_search_default + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + mBinding = FragmentSearchDefaultBinding.bind(mCachedView) + + mSearchHistoryDao = SearchHistoryDao(context) + mHistoryList = mSearchHistoryDao.all + mBinding.isExistHistory = mHistoryList?.isNotEmpty() + mBinding.historyFlexContainer.setLimitHeight(mHistoryFlexMaxHeight) + createFlexContent(mBinding.historyFlex, mHistoryList, true, clickListener = { + val key = mHistoryList!![it] + mSearchHistoryDao.add(key) + EventBus.getDefault().post(EBSearch("history", key)) + Util_System_Keyboard.hideSoftKeyboardByIBinder(context, mBinding.historyFlex.windowToken) + }) + + mHotTagList = Config.getSettings()?.search?.hotTag + mBinding.isExistHotTag = mHotTagList?.isNotEmpty() + mBinding.hotTagFlexContainer.setLimitHeight(mTagFlexMaxHeight) + createFlexContent(mBinding.hotTagFlex, getTagListString(), false, clickListener = { + // todo 可以跳转至游戏标签详情 + DirectUtils.directToLinkPage(context!!, mHotTagList!![it], mEntrance, "搜索默认页面") + }) + + mHotSearchList = Config.getSettings()?.search?.hotSearch + mBinding.isExistHotSearch = mHotSearchList?.isNotEmpty() + mBinding.hotList.run { + layoutManager = GridLayoutManager(context, 2) + adapter = SearchDefaultHotAdapter(context, mHotSearchList, callBack = { + EventBus.getDefault().post(EBSearch("remen", it)) + mSearchHistoryDao.add(it) + Util_System_Keyboard.hideSoftKeyboardByIBinder(context, windowToken) + }) + } + + mBinding.historyClear.setOnClickListener { + DialogUtils.showWarningDialog(activity, "清空记录", "确定清空历史搜索记录?") { + mSearchHistoryDao.deleteAll() + mBinding.isExistHistory = false + } + } + } + + private fun getTagListString(): List { + val list = ArrayList() + if (mHotTagList != null) { + for (entity in mHotTagList!!) { + entity.text?.let { list.add(it) } + } + } + return list + } + + private fun createFlexContent(flexView: FlexboxLayout, + contentList: List?, + isHistoryFlex: Boolean, + clickListener: (Int) -> Unit) { + + if (contentList == null || contentList.isEmpty()) return + flexView.removeAllViews() + + for (index in 0 until contentList.count()) { + val flexCell = TextView(context) + flexView.addView(flexCell) + + val params = FlexboxLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, 25F.dip2px()) + params.setMargins(0, 0, 20F.dip2px(), 15F.dip2px()) + flexCell.layoutParams = params + + flexCell.textSize = 13f + flexCell.gravity = Gravity.CENTER + flexCell.text = contentList[index] + flexCell.setTextColor(Color.WHITE) + flexCell.setPadding(10F.dip2px(), 0, 10F.dip2px(), 0) + flexCell.background = if (isHistoryFlex) { + DrawableView.getOvalDrawable(R.color.text_d5d5d5) + } else { + DrawableView.getOvalDrawable(R.color.theme) + } + flexCell.setOnClickListener { + clickListener.invoke(index) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchDefaultHotAdapter.kt b/app/src/main/java/com/gh/gamecenter/search/SearchDefaultHotAdapter.kt new file mode 100644 index 0000000000..d4545aad98 --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/search/SearchDefaultHotAdapter.kt @@ -0,0 +1,44 @@ +package com.gh.gamecenter.search + +import android.content.Context +import android.support.v4.content.ContextCompat +import android.view.ViewGroup +import com.gh.base.BaseRecyclerViewHolder +import com.gh.gamecenter.R +import com.gh.gamecenter.databinding.SearchDefaultHotItemBinding +import com.gh.gamecenter.entity.SettingsEntity +import com.lightgame.adapter.BaseRecyclerAdapter + +class SearchDefaultHotAdapter(context: Context, + val hotList: List?, + val callBack: (String) -> Unit) : BaseRecyclerAdapter(context) { + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SearchDefaultHotViewHolder { + val view = mLayoutInflater.inflate(R.layout.search_default_hot_item, parent, false) + return SearchDefaultHotViewHolder(SearchDefaultHotItemBinding.bind(view)) + } + + override fun getItemCount(): Int { + return if (hotList == null || hotList.isEmpty()) return 0 else hotList.size + } + + override fun onBindViewHolder(holder: SearchDefaultHotViewHolder, position: Int) { + val hotSearch = hotList!![position] + holder.binding.run { + entity = hotSearch + index.text = (position + 1).toString() + if (position > 2) { + index.setTextColor(ContextCompat.getColor(mContext, R.color.text_3a3a3a)) + name.setTextColor(ContextCompat.getColor(mContext, R.color.text_3a3a3a)) + } else { + index.setTextColor(ContextCompat.getColor(mContext, R.color.tag_orange)) + name.setTextColor(ContextCompat.getColor(mContext, R.color.tag_orange)) + } + } + holder.itemView.setOnClickListener { + callBack.invoke(hotSearch.name) + } + } +} + +class SearchDefaultHotViewHolder(val binding: SearchDefaultHotItemBinding) : BaseRecyclerViewHolder(binding.root) \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragment.java b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragment.java deleted file mode 100644 index a704f46018..0000000000 --- a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragment.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.gh.gamecenter.search; - -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.view.View; -import android.view.ViewGroup; -import android.widget.TextView; - -import com.gh.base.fragment.BaseFragment; -import com.gh.common.constant.Config; -import com.gh.common.util.DialogUtils; -import com.gh.common.util.DisplayUtils; -import com.gh.gamecenter.R; -import com.gh.gamecenter.db.SearchHistoryDao; - -import java.util.ArrayList; -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -public class SearchHistoryFragment extends BaseFragment { - - @BindView(R.id.search_hot_tv) - TextView mSearchHotTv; - @BindView(R.id.search_hot_rv) - RecyclerView mSearchHotRv; - @BindView(R.id.search_history_rv) - RecyclerView mSearchHistoryRv; - @BindView(R.id.search_history_container) - View mHistoryContainer; - private SearchHistoryDao dao; - - private List mHistorylist; - - private List mHotlist; - - private SearchHistoryFragmentAdapter mHistoryadapter; - - private boolean isDestroy; - - @Override - protected int getLayoutId() { - return R.layout.fm_search_history; - } - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - isDestroy = false; - mHotlist = new ArrayList<>(); - - dao = new SearchHistoryDao(getContext()); - mHistorylist = dao.getAll(); - if (mHistorylist == null) { - mHistorylist = new ArrayList<>(); - } - - mSearchHistoryRv.setHasFixedSize(true); - mSearchHistoryRv.setLayoutManager(new GridLayoutManager(getActivity(), 3) { - @Override - public boolean canScrollVertically() { - return false; - } - }); - mHistoryadapter = new SearchHistoryFragmentAdapter(getActivity(), mHistorylist, dao, true); - mSearchHistoryRv.setAdapter(mHistoryadapter); - ViewGroup.LayoutParams params = mSearchHistoryRv.getLayoutParams(); - params.height = (int) Math.ceil(mHistorylist.size() / 3f) * DisplayUtils.dip2px(getContext(), 32) + DisplayUtils.dip2px(getContext(), 10); - mSearchHistoryRv.setLayoutParams(params); - if (mHistorylist.size() > 0) { - mHistoryContainer.setVisibility(View.VISIBLE); - } else { - mHistoryContainer.setVisibility(View.GONE); - } - - mSearchHotRv.setHasFixedSize(true); - mSearchHotRv.setLayoutManager(new GridLayoutManager(getActivity(), 3) { - @Override - public boolean canScrollVertically() { - return false; - } - }); - mSearchHotRv.setAdapter(new SearchHistoryFragmentAdapter(getActivity(), mHotlist, dao, false)); - ViewGroup.LayoutParams params2 = mSearchHotRv.getLayoutParams(); - params2.height = (int) Math.ceil(mHotlist.size() / 3f) * DisplayUtils.dip2px(getContext(), 32) + DisplayUtils.dip2px(getContext(), 10); - mSearchHotRv.setLayoutParams(params2); - - setSearchHotData(); - } - - private void setSearchHotData() { - if (Config.getSettings() != null && Config.getSettings().getSearch() != null - && Config.getSettings().getSearch().getRemenData() != null) { - mHotlist = Config.getSettings().getSearch().getRemenData(); - } - - if (mHotlist.size() == 0 || isDestroy) return; - - mSearchHotTv.setVisibility(View.VISIBLE); - mSearchHotRv.setAdapter(new SearchHistoryFragmentAdapter(getActivity(), mHotlist, dao, false)); - ViewGroup.LayoutParams params2 = mSearchHotRv.getLayoutParams(); - int lines = (int) Math.ceil(mHotlist.size() / 3f); - if (lines > 3) { - lines = 3; - } - params2.height = lines * DisplayUtils.dip2px(getContext(), 32) + DisplayUtils.dip2px(getContext(), 10); - mSearchHotRv.setLayoutParams(params2); - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - isDestroy = true; - } - - @OnClick(R.id.search_history_clean) - public void onDeleteClick() { - DialogUtils.showWarningDialog(getActivity(), "清空记录", "确定清空历史搜索记录?", - new DialogUtils.ConfirmListener() { - @Override - public void onConfirm() { - dao.deleteAll(); - mHistoryadapter.clearSearchResult(); - mHistoryContainer.setVisibility(View.GONE); - mSearchHistoryRv.setAdapter(mHistoryadapter); - ViewGroup.LayoutParams params = mSearchHistoryRv.getLayoutParams(); - params.height = 0; - mSearchHistoryRv.setLayoutParams(params); - } - }); - } -} diff --git a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java deleted file mode 100644 index f49ce8dac4..0000000000 --- a/app/src/main/java/com/gh/gamecenter/search/SearchHistoryFragmentAdapter.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.gh.gamecenter.search; - -import android.content.Context; -import android.support.v4.content.ContextCompat; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.RecyclerView.ViewHolder; -import android.text.TextUtils; -import android.view.Gravity; -import android.view.View; -import android.view.ViewGroup; -import android.widget.LinearLayout; -import android.widget.TextView; - -import com.gh.common.util.DisplayUtils; -import com.gh.gamecenter.R; -import com.gh.gamecenter.db.SearchHistoryDao; -import com.gh.gamecenter.eventbus.EBSearch; -import com.lightgame.adapter.BaseRecyclerAdapter; -import com.lightgame.utils.Util_System_Keyboard; - -import org.greenrobot.eventbus.EventBus; - -import java.util.List; - - -class SearchHistoryFragmentAdapter extends BaseRecyclerAdapter { - - private SearchHistoryDao dao; - - private List historyList; - - private boolean mIsHistory; - - SearchHistoryFragmentAdapter(Context context, List list, SearchHistoryDao dao, boolean isHistory) { - super(context); - this.dao = dao; - this.historyList = list; - this.mIsHistory = isHistory; - - } - - public void clearSearchResult() { - if (historyList != null) { - historyList.clear(); - } - notifyDataSetChanged(); - } - - @Override - public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { - TextView textView = new TextView(mContext); - textView.setSingleLine(); - textView.setEllipsize(TextUtils.TruncateAt.END); - textView.setTextSize(13); - textView.setPadding(DisplayUtils.dip2px(mContext, 10), 0, DisplayUtils.dip2px(mContext, 10), 0); - textView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT - , DisplayUtils.dip2px(mContext, 32))); - textView.setGravity(Gravity.CENTER_VERTICAL); - textView.setBackgroundResource(R.drawable.reuse_listview_item_style); - return new TextViewHolder(textView); - } - - @Override - public void onBindViewHolder(final ViewHolder holder, int position) { - - if (holder instanceof TextViewHolder) { - final TextViewHolder viewHolder = (TextViewHolder) holder; - viewHolder.textView.setText(historyList.get(position)); - - if (!mIsHistory && position < 3) { - viewHolder.textView.setTextColor(ContextCompat.getColor(mContext, R.color.type_gonggao)); - } else { - viewHolder.textView.setTextColor(ContextCompat.getColor(mContext, R.color.title)); - } - - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - String key = viewHolder.textView.getText().toString(); - if (mIsHistory) { - dao.add(key); - EventBus.getDefault().post(new EBSearch("history", key)); - } else { - EventBus.getDefault().post(new EBSearch("remen", key)); - dao.add(key); - } - Util_System_Keyboard.hideSoftKeyboardByIBinder(mContext, v.getWindowToken()); - } - }); - } - } - - @Override - public int getItemCount() { - if (historyList.isEmpty()) { - return 0; - } - return historyList.size(); - } - - public class TextViewHolder extends RecyclerView.ViewHolder { - - private TextView textView; - - public TextViewHolder(View itemView) { - super(itemView); - textView = (TextView) itemView; - } - } - -} diff --git a/app/src/main/res/layout/fragment_search_default.xml b/app/src/main/res/layout/fragment_search_default.xml new file mode 100644 index 0000000000..b7ae064514 --- /dev/null +++ b/app/src/main/res/layout/fragment_search_default.xml @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/search_default_hot_item.xml b/app/src/main/res/layout/search_default_hot_item.xml new file mode 100644 index 0000000000..58a993dcf6 --- /dev/null +++ b/app/src/main/res/layout/search_default_hot_item.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 28bad55461..db30fdb668 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -18,6 +18,7 @@ 全部开始 搜索中... 热门搜索 + 热门标签 历史搜索 更新 我要发送 diff --git a/libraries/LGLibrary b/libraries/LGLibrary index 56ed06125d..6a3e9049a1 160000 --- a/libraries/LGLibrary +++ b/libraries/LGLibrary @@ -1 +1 @@ -Subproject commit 56ed06125d789af02b5c693e91019dc98f5be4ce +Subproject commit 6a3e9049a130949a3c7aff68576473c055a81da2