From 12a19ad554e6f7c5c355856c12914bca7bce70e8 Mon Sep 17 00:00:00 2001
From: admin <2780501319@qq.com>
Date: 星期二, 30 三月 2021 01:39:47 +0800
Subject: [PATCH] 搜索与搜索结果页,白色背景兼容

---
 BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java |  119 +++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 79 insertions(+), 40 deletions(-)

diff --git a/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java b/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java
index 9019582..2d3d08c 100644
--- a/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java
+++ b/BuWanVideo/src/com/weikou/beibeivideo/ui/recommend/SearchResultActivity.java
@@ -26,8 +26,10 @@
 import android.widget.ArrayAdapter;
 import android.widget.AutoCompleteTextView;
 import android.widget.BaseAdapter;
+import android.widget.EditText;
 import android.widget.Filter;
 import android.widget.Filterable;
+import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.LinearLayout.LayoutParams;
@@ -68,7 +70,7 @@
 public class SearchResultActivity extends BaseActivity implements
         OnClickListener {
 
-    private AutoCompleteTextView et_search_key;
+    private EditText et_search_key;
 
     private TextView tv_search_cancel;
 
@@ -101,11 +103,17 @@
 
     private LinearLayout ll_empty;
 
+    private SearchSuggestFragment suggestFragment;
+
+    private FrameLayout fl_suggest;
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.search_result_activity);
         initStatusBar();
+
+        suggestFragment = new SearchSuggestFragment();
 
         rl_search_result = findViewById(R.id.rl_search_result);
         et_search_key = findViewById(R.id.et_search_key);
@@ -113,6 +121,7 @@
         rv_video_search = findViewById(R.id.rv_video_search);
         ll_top_bar = findViewById(R.id.ll_top_bar);
         ll_empty = findViewById(R.id.ll_empty);
+        fl_suggest = findViewById(R.id.fl_suggest);
 
         tv_search_cancel.setOnClickListener(this);
         et_search_key.addTextChangedListener(new TextWatcher() {
@@ -131,33 +140,18 @@
 
             @Override
             public void afterTextChanged(Editable s) {
-                if (!TextUtils.isEmpty(s.toString())
-                        || !TextUtils.isEmpty(et_search_key.getText())) {
-                    if (mFirst) {
-                        mFirst = false;
-                    } else {
-                        suggestSearch(s.toString());
-                    }
+                if (!TextUtils.isEmpty(s.toString())) {
                     et_search_key.setCompoundDrawablesWithIntrinsicBounds(0, 0,
                             R.drawable.ic_clear, 0);
                 } else {
                     et_search_key.setCompoundDrawablesWithIntrinsicBounds(0, 0,
                             0, 0);
                 }
-            }
-        });
-        et_search_key.setOnItemClickListener(new OnItemClickListener() {
-
-            @Override
-            public void onItemClick(AdapterView<?> parent, View view,
-                                    int position, long id) {
-                mFirst = true;
-                mCurrentKey = parent.getItemAtPosition(position).toString();
-                SoftKeyboardUtils.hideSoftInput(SearchResultActivity.this);
-                mCurrentPage = 1;
-                //娓呴櫎椤堕儴鍒嗙被
-                typeList = null;
-                search(mCurrentKey, mCurrentType);
+                if (mFirst) {
+                    mFirst = false;
+                } else {
+                    suggestSearch(s != null ? s.toString() : null);
+                }
             }
         });
 
@@ -190,18 +184,7 @@
             @Override
             public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                 if (actionId == EditorInfo.IME_ACTION_SEARCH) {
-                    if (StringUtils.isEmpty(et_search_key.getEditableText()
-                            .toString())) {
-                        mCurrentKey = et_search_key.getText().toString();
-                    } else {
-                        mCurrentKey = et_search_key.getEditableText().toString();
-                    }
-                    SoftKeyboardUtils.hideSoftInput(SearchResultActivity.this);
-                    mCurrentPage = 1;
-                    rl_search_result.setRefreshing(true);
-                    //娓呴櫎椤堕儴鍒嗙被
-                    typeList = null;
-                    search(mCurrentKey, mCurrentType);
+                    startSearch();
                     return true;
                 }
                 return false;
@@ -268,6 +251,21 @@
 //        loadAd();
     }
 
+    private void startSearch() {
+        if (StringUtils.isEmpty(et_search_key.getEditableText()
+                .toString())) {
+            mCurrentKey = et_search_key.getText().toString();
+        } else {
+            mCurrentKey = et_search_key.getEditableText().toString();
+        }
+        SoftKeyboardUtils.hideSoftInput(SearchResultActivity.this);
+        mCurrentPage = 1;
+        rl_search_result.setRefreshing(true);
+        //娓呴櫎椤堕儴鍒嗙被
+        typeList = null;
+        search(mCurrentKey, mCurrentType);
+    }
+
     private void initTopBar(List<VideoType> videoTypeList) {
         int p = 0;
         ll_top_bar.removeAllViews();
@@ -304,12 +302,12 @@
         if (selected) {
             tv_name.setBackgroundResource(R.drawable.vpi__tab_selected_focused_holo);
             tv_name.setTextSize(17);
-            tv_name.setTextColor(Color.parseColor("#FFFFFF"));
+            tv_name.setTextColor(getResources().getColor(R.color.nav_highloght_text_color));
             tv_name.setPadding(0, 0, 0, DimenUtils.dip2px(getApplicationContext(), 5));
         } else {
             tv_name.setBackground(null);
             tv_name.setTextSize(12);
-            tv_name.setTextColor(Color.parseColor("#999999"));
+            tv_name.setTextColor(getResources().getColor(R.color.nav_text_color));
             tv_name.setPadding(0, 0, 0, 0);
         }
     }
@@ -321,7 +319,37 @@
         }
     }
 
+
+    private void hiddenSuggestFragment() {
+        fl_suggest.setVisibility(View.GONE);
+        getSupportFragmentManager().beginTransaction().remove(suggestFragment).commitAllowingStateLoss();
+    }
+
+    private void showSuggestFragment(String key, List<String> list) {
+        Bundle bundle = new Bundle();
+        bundle.putString("key", key);
+        bundle.putString("list", new Gson().toJson(list));
+        fl_suggest.setVisibility(View.VISIBLE);
+        suggestFragment.setItemClickListener(new SearchSuggestFragment.OnItemClickListener() {
+            @Override
+            public void onClick(String st) {
+                mFirst = true;
+                hiddenSuggestFragment();
+                et_search_key.setText(st);
+                startSearch();
+            }
+        });
+
+        suggestFragment.setArguments(bundle);
+        getSupportFragmentManager().beginTransaction().replace(R.id.fl_suggest, suggestFragment).commitAllowingStateLoss();
+    }
+
+
     private void suggestSearch(String key) {
+        if (StringUtils.isEmpty(key)) {
+            hiddenSuggestFragment();
+        }
+
         SharedPreferences preferences = getSharedPreferences("user",
                 Context.MODE_PRIVATE);
         String uid = preferences.getString("uid", "");
@@ -332,18 +360,29 @@
                     public void onSuccessPerfect(int statusCode,
                                                  Header[] headers, JSONObject jsonObject)
                             throws Exception {
+                        List<String> results = null;
                         if (jsonObject.getBoolean("IsPost")) {
                             Gson gson = new GsonBuilder().setFieldNamingPolicy(
                                     FieldNamingPolicy.UPPER_CAMEL_CASE)
                                     .create();
-                            List<String> results = gson.fromJson(jsonObject
+                            results = gson.fromJson(jsonObject
                                     .getJSONObject("Data").getJSONArray("data")
                                     .toString(), new TypeToken<List<String>>() {
                             }.getType());
-                            SuggestKeysAdapter adapter = new SuggestKeysAdapter(getApplicationContext(), results);
-                            et_search_key.setAdapter(adapter);
-                            adapter.notifyDataSetChanged();
+
+
+//                            SuggestKeysAdapter adapter = new SuggestKeysAdapter(getApplicationContext(), results);
+//                            et_search_key.setAdapter(adapter);
+//                            adapter.notifyDataSetChanged();
                         }
+
+                        if (results != null && results.size() > 0) {
+                            showSuggestFragment(key, results);
+                            suggestFragment.setData(key, results);
+                        } else {
+                            hiddenSuggestFragment();
+                        }
+
                     }
                 });
     }

--
Gitblit v1.8.0