pdlivexp/OneToOne/src/main/java/com/shayu/onetoone/activity/HomepageRankingActivity.java
2023-10-28 18:26:39 +08:00

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);
}
}
}