package com.yidianling.course.courseNew.mine; import android.content.Context; import android.content.Intent; import android.content.res.Resources; import com.google.android.material.tabs.TabLayout; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentPagerAdapter; import androidx.viewpager.widget.ViewPager; import android.util.TypedValue; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.ydl.ydlcommon.base.BaseActivity; import com.ydl.ydlcommon.bean.StatusBarOptions; import com.ydl.ydlcommon.utils.DisplayUtils; import com.yidianling.course.CourseListFragment; import com.yidianling.course.R; import com.yidianling.course.widget.CourseRedPacketView; import com.yidianling.course.widget.SearchBarView; import org.jetbrains.annotations.NotNull; import java.lang.reflect.Field; /** * Created by Jim on 2018/7/16 0016. * 心理课程 */ public class MyCourseActivity extends BaseActivity { public final static String TAB_KEY = "tab_index"; public final static int TAB_PAIED = 2; public final static int TAB_COLLECT = 1; private int tabIndex; @NotNull @Override public StatusBarOptions getStatusViewOptions() { return new StatusBarOptions(true,true); } public static void start(Context context) { Intent i = new Intent(context, MyCourseActivity.class); i.putExtra(TAB_KEY, TAB_PAIED); context.startActivity(i); } public static void start(Context context, int index) { Intent i = new Intent(context, MyCourseActivity.class); i.putExtra(TAB_KEY, index); context.startActivity(i); } @Override protected int layoutResId() { return R.layout.activity_my_course; } @Override protected void initDataAndEvent() { tabIndex = getIntent().getIntExtra(TAB_KEY, -1); TextView tv = findViewById(R.id.tv_title); tv.setText("我的课程"); ImageView iv = findViewById(R.id.iv_back); findViewById(R.id.tv_left_menu).setVisibility(View.GONE); iv.setOnClickListener(view -> { finish(); }); SearchBarView searchBarView = findViewById(R.id.search_bar); searchBarView.initBarType(SearchBarView.JUMP_TO_SEARCH_COURSE, null); TabLayout tabLayout = findViewById(R.id.my_courses_tabs); ViewPager viewPager = findViewById(R.id.my_course_vp); tabLayout.setupWithViewPager(viewPager); viewPager.setAdapter(new MyCourseFragmentAdapter(getSupportFragmentManager())); viewPager.setCurrentItem(2); tabLayout.post(new Runnable() { @Override public void run() { setIndicator(tabLayout, 15, 15); } }); //初始化倾诉红包 initConfideRedPacketView(); } private void initConfideRedPacketView() { CourseRedPacketView courseRedPacketView = findViewById(R.id.courseRedPacketView); courseRedPacketView.initData(View.VISIBLE); courseRedPacketView.setConfide(); } public void setIndicator(TabLayout tabs, int leftDip, int rightDip) { Class<?> tabLayout = tabs.getClass(); Field tabStrip = null; try { tabStrip = tabLayout.getClass().getDeclaredField("mTabStrip"); tabStrip.setAccessible(true); LinearLayout llTab = null; try { llTab = (LinearLayout) tabStrip.get(tabs); } catch (IllegalAccessException e) { e.printStackTrace(); } int left = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, leftDip, Resources.getSystem().getDisplayMetrics()); int right = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, rightDip, Resources.getSystem().getDisplayMetrics()); for (int i = 0; i < llTab.getChildCount(); i++) { View child = llTab.getChildAt(i); child.setPadding(0, 0, 0, 0); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1); params.leftMargin = DisplayUtils.dip2px(this, left); params.rightMargin = DisplayUtils.dip2px(this, right); child.setLayoutParams(params); child.invalidate(); } } catch (NoSuchFieldException e) { e.printStackTrace(); } } static class MyCourseFragmentAdapter extends FragmentPagerAdapter { private Fragment[] mFragments; private String[] titles = new String[]{"收藏", "已购"}; public MyCourseFragmentAdapter(FragmentManager fm) { super(fm); mFragments = new Fragment[]{CourseListFragment.newInstance(2), CourseListFragment.newInstance(1)}; } @Override public Fragment getItem(int position) { if (position == 0) { } else { } return mFragments[position]; } @Override public int getCount() { return mFragments.length; } @Override public CharSequence getPageTitle(int position) { return titles[position]; } } }