From f6b84428fce7453689956eae44e71b33a69a4665 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 24 十二月 2021 11:32:15 +0800 Subject: [PATCH] UI修改 --- app/src/com/hanju/video/app/ui/main/HomeFragment.java | 392 ++++++++++++++++++++++++------------------------------- 1 files changed, 173 insertions(+), 219 deletions(-) diff --git a/app/src/com/hanju/video/app/ui/main/HomeFragment.java b/app/src/com/hanju/video/app/ui/main/HomeFragment.java index f5c848c..8cdf4b3 100644 --- a/app/src/com/hanju/video/app/ui/main/HomeFragment.java +++ b/app/src/com/hanju/video/app/ui/main/HomeFragment.java @@ -5,10 +5,13 @@ import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.graphics.Color; import android.os.Build; import android.os.Bundle; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.coordinatorlayout.widget.CoordinatorLayout; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentStatePagerAdapter; @@ -21,6 +24,7 @@ import android.widget.Toast; import com.androidquery.AQuery; +import com.google.android.material.appbar.AppBarLayout; import com.google.gson.FieldNamingPolicy; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -36,6 +40,7 @@ import com.hanju.video.app.util.ad.CSJADConstant; import com.hanju.video.app.util.ad.GDTADConstant; import com.hanju.video.app.util.ad.IntertitialAdUtil; +import com.hanju.video.app.util.ui.StatusBarUtil; import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator; import com.video.youth.util.YouthUtil; import com.viewpagerindicator.MainTabPageIndicator; @@ -52,6 +57,15 @@ import com.hanju.video.app.ui.recommend.RecommendFragment; import com.hanju.video.app.ui.recommend.SearchActivity; import com.hanju.video.app.R; + +import net.lucode.hackware.magicindicator.MagicIndicator; +import net.lucode.hackware.magicindicator.ViewPagerHelper; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorTransitionPagerTitleView; import org.apache.http.Header; import org.json.JSONObject; @@ -78,20 +92,14 @@ */ HomePageAdapter adapter; ViewPager pager; - MainTabPageIndicator indicator; - TextView tv_search; - ImageView iv_msg_dot; - - FrameLayout fl_indicator; - - - private DiskLruCache cache; - - private boolean isLogin = false; - - SharedPreferences preferences;// - + SharedPreferences preferences; private AQuery mAquery; + private MagicIndicator mMagicIndicator; + private DYNewsFragment mDYNewsFragment; + private NovelFragment mNovelFragment; + private AppBarLayout mAppBarLayout; + CoordinatorLayout mCoordinatorLayout; + private DiskLruCache cache; public HomeFragment() { super(HomeFragment.class.getClass().getName()); @@ -109,11 +117,9 @@ } catch (IOException e) { e.printStackTrace(); } - preferences = getContext().getSharedPreferences("user", Context.MODE_PRIVATE); } - public static int getVersionNum(Context context) { try { @@ -126,6 +132,7 @@ } } + @Override public int getContentResource() { return R.layout.fragment_recommend_category; @@ -133,73 +140,60 @@ private void initView(View view) { - view.findViewById(R.id.iv_activity_main_download).setOnClickListener(this); - view.findViewById(R.id.ll_activity_main_search).setOnClickListener(this); - view.findViewById(R.id.iv_recommend_watch_history).setOnClickListener(this); - view.findViewById(R.id.ll_activity_login).setOnClickListener(this); - view.findViewById(R.id.iv_recommend_download).setOnClickListener(this); + mAquery = new AQuery(view); + mMagicIndicator = view.findViewById(R.id.magic_indicator); + pager = view.findViewById(R.id.pager_recomend_category); + mAquery.id(R.id.v_status_bar).height(StatusBarUtil.getStatusBarHeight(getActivity()), false); + mAppBarLayout = view.findViewById(R.id.abl_recommend); + mCoordinatorLayout = view.findViewById(R.id.cl_recommend); + } + private void init() { + adapter = new HomePageAdapter( + getChildFragmentManager()); + pager.setAdapter(adapter); + pager.setOffscreenPageLimit(2); + CommonNavigator commonNavigator = new CommonNavigator(getActivity()); + commonNavigator.setAdapter(navigatorAdapter); + commonNavigator.setAdjustMode(true); + mMagicIndicator.setNavigator(commonNavigator); + ViewPagerHelper.bind(mMagicIndicator, pager); + if (adapter.getCount() <= 1) { + mMagicIndicator.setVisibility(View.GONE); + } else { + pager.setCurrentItem(1); + } + pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { - tv_search = view.findViewById(R.id.tv_activity_main_search); - iv_msg_dot = view.findViewById(R.id.iv_msg_dot); + } + + @Override + public void onPageSelected(int position) { + mAppBarLayout.setExpanded(true); + } + + @Override + public void onPageScrollStateChanged(int state) { + + } + }); +// getCategories(); } @Override public void onCreateView(View contentView, Bundle savedInstanceState) { - getActivity().setTheme(R.style.AppTabThemeMain); - mAquery = new AQuery(contentView); initView(contentView); - pager = contentView.findViewById(R.id.pager_recomend_category); - fl_indicator = contentView.findViewById(R.id.fl_indicator); - if (fl_indicator.getChildCount() > 0) { - fl_indicator.removeAllViews(); - } - DiskLruCache.Snapshot snapshot = null; - try { - if (cache != null) { - snapshot = cache.get(getKey("getCategories")); - if (snapshot != null) { - List<HomeNav> list = JsonUtil.videoGson.fromJson( - snapshot.getString(0), - new TypeToken<List<HomeNav>>() { - }.getType()); - categories.addAll(list); - } - } - } catch (IOException e) { - e.printStackTrace(); - } finally { - if (snapshot != null) { - snapshot.close(); - } - } + init(); - adapter = new HomePageAdapter( - getChildFragmentManager(), categories); - pager.setAdapter(adapter); - indicator = new MainTabPageIndicator( - pager.getContext()); - indicator.setViewPager(pager, 0); - fl_indicator.addView(indicator); - if (categories.size() > 1) { - fl_indicator.setVisibility(View.VISIBLE); - } else { - fl_indicator.setVisibility(View.GONE); - } - getHotSearch(); - getCategories(); } - private String getKey(String method) { - return new Md5FileNameGenerator().generate(method); - } @Override public void onResume() { super.onResume(); - isLogin = !StringUtils.isEmpty(preferences.getString("LoginUid", "")); - EventBus.getDefault().register(this); - +// EventBus.getDefault().register(this); if (YouthUtil.isOpenYouthMode(getContext())) { mAquery.id(R.id.ll_top).visibility(View.GONE); } else { @@ -219,15 +213,79 @@ EventBus.getDefault().unregister(this); } + class HomePageAdapter extends FragmentStatePagerAdapter { + private FragmentManager fm; + + + private List<Fragment> fragments = new ArrayList(); + + public HomePageAdapter(FragmentManager fm) { + super(fm); + this.fm = fm; + if (AdUtil.isCanInitCSJ()) { + mDYNewsFragment = new DYNewsFragment(); + mNovelFragment = new NovelFragment(fm); + fragments.add(mNovelFragment); + fragments.add(mDYNewsFragment); + } + HomeNav homeNav = new HomeNav(); + homeNav.setName("鎺ㄨ崘"); + homeNav.setDataKey("recommend"); + homeNav.setDataType("recommend"); + fragments.add(fragments.size() > 0 ? 1 : 0, RecommendFragment.newInstance(homeNav, 0 + "")); + } + + @Override + public Fragment getItem(int position) { + return fragments.get(position); + } + + @Override + public int getCount() { + return fragments.size(); + } + + + @Nullable + @Override + public CharSequence getPageTitle(int position) { + if (fragments.size() > 1) { + switch (position) { + case 0: + return "灏忚"; + case 1: + return "鎺ㄨ崘"; + case 2: + return "璇濋"; + default: + return ""; + } + } else { + return "鎺ㄨ崘"; + } + } + } + + @Override + public void onClick(View view) { + switch (view.getId()) { + case R.id.iv_recommend_watch_history: { + startActivity(new Intent(getContext(), + WatchHistoryActivity.class)); + } + break; + } + } public void onEventMainThread(VideoType type) { getCategories(); } + private String getKey(String method) { + return new Md5FileNameGenerator().generate(method); + } + List<HomeNav> categories = new ArrayList<>(); - - int count = 1; - private void getCategories() { SharedPreferences preferences = pager.getContext().getSharedPreferences( "user", Context.MODE_PRIVATE); @@ -239,10 +297,12 @@ Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.getBoolean("IsPost")) { - + Gson gson = new GsonBuilder().setFieldNamingPolicy( + FieldNamingPolicy.UPPER_CAMEL_CASE) + .create(); categories.clear(); - List<HomeNav> list = JsonUtil.videoGson.fromJson( + List<HomeNav> list = gson.fromJson( jsonObject.getJSONObject("Data") .getJSONArray("data").toString(), new TypeToken<List<HomeNav>>() { @@ -250,14 +310,7 @@ categories.addAll(list); - if (categories.size() > 1) { - fl_indicator.setVisibility(View.VISIBLE); - } else { - fl_indicator.setVisibility(View.GONE); - } - adapter.notifyDataSetChanged(); - indicator.notifyDataSetChanged(); pager.setCurrentItem(0); @@ -266,7 +319,7 @@ try { DiskLruCache.Editor editor = cache .edit(getKey("getCategories")); - editor.set(0, JsonUtil.videoGson.toJson(categories)); + editor.set(0, gson.toJson(categories)); editor.commit(); } catch (IOException e) { } @@ -294,157 +347,58 @@ }); } - class HomePageAdapter extends FragmentStatePagerAdapter { - private FragmentManager fm; - private List<HomeNav> mlist; - - private Map<Integer, Fragment> fragments = new HashMap<>(); - - public HomePageAdapter(FragmentManager fm, List<HomeNav> list) { - super(fm); - this.fm = fm; - this.mlist = list; - } - - @Override - public Fragment getItem(int position) { - Fragment fragment = RecommendFragment.newInstance(mlist.get(position), position + ""); - return fragment; - } + private CommonNavigatorAdapter navigatorAdapter = new CommonNavigatorAdapter() { @Override public int getCount() { - return mlist.size(); + return adapter.getCount(); } -// @Override -// public Object instantiateItem(ViewGroup container, int position) { -// Fragment fragment = (Fragment) super.instantiateItem(container, position); -// fm.beginTransaction().show(fragment).commit(); -// return fragment; -// } -// -// @Override -// public void destroyItem(ViewGroup container, int position, Object object) { -// Fragment fragment = fragments.get(position); -// try { -// fm.beginTransaction().hide(fragment).commit(); -// } catch (Exception e) { -// -// } -// } - @Nullable @Override - public CharSequence getPageTitle(int position) { - return mlist.get(position).getName(); - } - } + public IPagerTitleView getTitleView(final Context context, final int index) { + ColorTransitionPagerTitleView colorTransitionPagerTitleView = new ColorTransitionPagerTitleView(context) { + @Override + public void onSelected(int index, int totalCount) { + super.onSelected(index, totalCount); - @Override - public void onClick(View view) { - switch (view.getId()) { - case R.id.iv_recommend_watch_history: { - startActivity(new Intent(getContext(), - WatchHistoryActivity.class)); - } - break; - case R.id.iv_activity_main_download: { - Toast.makeText(getContext(), "鏆傛椂涓嶆敮鎸佷笅杞斤紒", Toast.LENGTH_LONG).show(); - } - break; - case R.id.ll_activity_main_search: { - Intent intent = new Intent(getContext(), SearchActivity.class); - intent.putExtra("key", tv_search.getText().toString()); - startActivity(intent); - } - break; - case R.id.nat: - openMyselfSpread(); - break; - - case R.id.iv_recommend_download: - startActivity(new Intent(getContext(), DownloadActivity.class)); - break; - case R.id.mine_rl_head: - Intent intent = new Intent(); - if (isLogin) {// 鐧诲綍鍚� 閫昏緫 - intent.setClass(getContext(), PersonInfoActivity.class); - } else {// 鐧诲綍鍓� - intent.setClass(getContext(), LoginActivity.class); + setTextSize(20); + getPaint().setFakeBoldText(true); } - startActivity(intent); - break; -// case R.id.rl_mine_message: -// openMsg(); -// break; + + @Override + public void onDeselected(int index, int totalCount) { + super.onDeselected(index, totalCount); + setTextSize(14); + getPaint().setFakeBoldText(false); + } + }; + colorTransitionPagerTitleView.setNormalColor(Color.parseColor("#80FFFFFF")); + colorTransitionPagerTitleView.setSelectedColor(Color.WHITE); + colorTransitionPagerTitleView.setText(adapter.getPageTitle(index)); + colorTransitionPagerTitleView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + pager.setCurrentItem(index); + } + }); + colorTransitionPagerTitleView.setTextSize(14); + return colorTransitionPagerTitleView; } - } - /** - * 鎵撳紑椤堕儴鑷垜鎺ㄥ箍 - */ - private void openMyselfSpread() { - SharedPreferences preferences = getContext().getSharedPreferences( - "user", Context.MODE_PRIVATE); - SharedPreferences.Editor editor = preferences.edit(); - editor.putLong("latestAdtime", System.currentTimeMillis()); - editor.commit(); - Intent intent = new Intent(getContext(), BrowserActivity.class); - intent.putExtra("url", preferences.getString("tuiguang_add", "")); - startActivity(intent); - } - - /** - * 鎵撳紑娑堟伅椤甸潰 - */ - private void openMsg() { - EventBus.getDefault().post(new NewComment(true)); - SharedPreferences preferences = getContext().getSharedPreferences( - "user", Context.MODE_PRIVATE); - SharedPreferences.Editor editor = preferences.edit(); - editor.putBoolean("isCheckedCom", false); - - editor.commit(); - startActivity(new Intent(getContext(), - SystemMessageActivity.class)); - } - - private void getHotSearch() { - SharedPreferences preferences = getContext().getSharedPreferences("user", - Context.MODE_PRIVATE); - String uid = preferences.getString("uid", ""); - HttpApiUtil.getHotSearch(getContext(), uid, - new BasicTextHttpResponseHandler() { - @Override - public void onSuccessPerfect(int statusCode, - Header[] headers, JSONObject jsonObject) - throws Exception { - if (jsonObject.getBoolean("IsPost")) { - Gson gson = new GsonBuilder() - .create(); - List<String> hotSearchs = gson.fromJson(jsonObject - .getJSONObject("Data").getJSONArray("data") - .toString(), new TypeToken<List<String>>() { - }.getType()); - if (hotSearchs != null && hotSearchs.size() > 0) { - Random random = new Random(); - int p = random.nextInt(hotSearchs.size()); - tv_search.setText(hotSearchs.get(p)); - } - } - } - }); - } - - private String getDay(long time) { - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); - String date = format.format(new Date(time)); - return date; - } - + //姝や负tab鎸囩ず鍣ㄥ洖璋� + @Override + public IPagerIndicator getIndicator(Context context) { + LinePagerIndicator indicator = new LinePagerIndicator(context); + indicator.setLineHeight(0); + indicator.setColors(Color.WHITE); + indicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT); + indicator.setRoundRadius(5); + return indicator; + } + }; } -- Gitblit v1.8.0