114 lines
4.0 KiB
Java
114 lines
4.0 KiB
Java
package com.shayu.onetoone.activity;
|
|
|
|
import android.graphics.Color;
|
|
import android.os.Bundle;
|
|
import android.view.View;
|
|
import android.widget.RadioButton;
|
|
import android.widget.RadioGroup;
|
|
|
|
import androidx.annotation.NonNull;
|
|
import androidx.fragment.app.Fragment;
|
|
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
|
import androidx.viewpager2.widget.ViewPager2;
|
|
|
|
import com.alibaba.android.arouter.facade.annotation.Route;
|
|
import com.angcyo.tablayout.DslTabLayout;
|
|
import com.angcyo.tablayout.delegate2.ViewPager2Delegate;
|
|
import com.shayu.onetoone.R;
|
|
import com.shayu.onetoone.activity.fragments.home.HomeRankFragment;
|
|
import com.shayu.onetoone.listener.OnAppbarListener;
|
|
import com.shayu.onetoone.manager.RouteManager;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
@Route(path = RouteManager.ACTIVITY_HOME_RANK)
|
|
public class HomepageRankingActivity extends AbsOTOActivity {
|
|
ViewPager2 viewPager;
|
|
DslTabLayout dslTabLayout;
|
|
RadioButton mDay, mWeek;
|
|
private RadioGroup radioGroup;
|
|
private ViewPagerChangeCallback viewPagerChangeCallback;
|
|
List<HomeRankFragment> fragments = new ArrayList<>();
|
|
|
|
|
|
@Override
|
|
protected int getLayoutId() {
|
|
return R.layout.activity_main_list;
|
|
}
|
|
|
|
@Override
|
|
protected void main(Bundle savedInstanceState) {
|
|
mDay = findViewById(R.id.btn_day);
|
|
mWeek = findViewById(R.id.btn_week);
|
|
viewPager = findViewById(R.id.view_pager);
|
|
dslTabLayout = findViewById(R.id.dslTabLayout);
|
|
radioGroup = findViewById(R.id.radioGroup);
|
|
|
|
viewPagerChangeCallback = new ViewPagerChangeCallback();
|
|
ViewPager2Delegate.Companion.install(viewPager, dslTabLayout, false);
|
|
|
|
fragments.add(new HomeRankFragment(HomeRankFragment.TYPE_CHARM));//魅力
|
|
fragments.add(new HomeRankFragment(HomeRankFragment.TYPE_WEALTH)); //财富
|
|
viewPager.setAdapter(new FragmentStateAdapter(this) {
|
|
@NonNull
|
|
@Override
|
|
public Fragment createFragment(int position) {
|
|
fragments.get(position).setAppbarListener(new OnAppbarListener() {
|
|
@Override
|
|
public void onShow(boolean isShow) {
|
|
if (isShow) {
|
|
radioGroup.setVisibility(View.VISIBLE);
|
|
} else {
|
|
radioGroup.setVisibility(View.INVISIBLE);
|
|
}
|
|
}
|
|
});
|
|
return fragments.get(position);
|
|
}
|
|
|
|
@Override
|
|
public int getItemCount() {
|
|
return fragments.size();
|
|
}
|
|
});
|
|
mDay.setOnClickListener(v -> {
|
|
setRadioColor(mDay, mWeek);
|
|
fragments.get(viewPager.getCurrentItem()).setDate(HomeRankFragment.DATE_DAY);
|
|
});
|
|
mWeek.setOnClickListener(v -> {
|
|
setRadioColor(mWeek, mDay);
|
|
fragments.get(viewPager.getCurrentItem()).setDate(HomeRankFragment.DATE_WEEK);
|
|
});
|
|
viewPager.registerOnPageChangeCallback(viewPagerChangeCallback);
|
|
|
|
findViewById(R.id.back).setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
finish();
|
|
}
|
|
});
|
|
}
|
|
|
|
@Override
|
|
protected void onDestroy() {
|
|
super.onDestroy();
|
|
viewPager.unregisterOnPageChangeCallback(viewPagerChangeCallback);
|
|
}
|
|
|
|
private void setRadioColor(RadioButton select, RadioButton unSelect) {
|
|
select.setTextColor(Color.parseColor("#FFFFFF"));
|
|
unSelect.setTextColor(Color.parseColor("#666666"));
|
|
select.setBackgroundResource(R.drawable.bg_home_rank_day_select);
|
|
unSelect.setBackgroundResource(R.drawable.bg_home_rank_day);
|
|
}
|
|
|
|
private class ViewPagerChangeCallback extends ViewPager2.OnPageChangeCallback {
|
|
@Override
|
|
public void onPageSelected(int position) {
|
|
super.onPageSelected(position);
|
|
fragments.get(position).setDate(mDay.isChecked() ? HomeRankFragment.DATE_DAY : HomeRankFragment.DATE_WEEK);
|
|
}
|
|
}
|
|
}
|