[leanback] fix bug

pull/123/head
FongMi 3 years ago
parent 329bdfec0a
commit e6fb18cba6
  1. 10
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/CollectActivity.java
  2. 23
      app/src/leanback/java/com/fongmi/android/tv/ui/base/BaseFragment.java
  3. 8
      app/src/leanback/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java
  4. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java

@ -18,6 +18,7 @@ import androidx.recyclerview.widget.RecyclerView;
import androidx.viewbinding.ViewBinding;
import androidx.viewpager.widget.ViewPager;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.Constant;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.api.ApiConfig;
@ -86,7 +87,6 @@ public class CollectActivity extends BaseActivity {
mBinding.recycler.addOnChildViewHolderSelectedListener(new OnChildViewHolderSelectedListener() {
@Override
public void onChildViewHolderSelected(@NonNull RecyclerView parent, @Nullable RecyclerView.ViewHolder child, int position, int subposition) {
mBinding.pager.setCurrentItem(position);
onChildSelected(child);
}
});
@ -140,8 +140,16 @@ public class CollectActivity extends BaseActivity {
if (child == null) return;
mOldView = child.itemView;
mOldView.setActivated(true);
App.post(mRunnable, 200);
}
private final Runnable mRunnable = new Runnable() {
@Override
public void run() {
mBinding.pager.setCurrentItem(mBinding.recycler.getSelectedPosition());
}
};
private CollectFragment getFragment() {
return (CollectFragment) mPageAdapter.instantiateItem(mBinding.pager, 0);
}

@ -14,6 +14,8 @@ public abstract class BaseFragment extends Fragment {
protected abstract ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container);
private boolean init;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
@ -23,12 +25,29 @@ public abstract class BaseFragment extends Fragment {
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
initView();
initEvent();
}
protected void initView() {
}
protected void initEvent() {
protected void initData() {
}
private void onVisible() {
if (init) return;
initData();
init = true;
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) if (isResumed()) onVisible();
}
@Override
public void onResume() {
super.onResume();
if (getUserVisibleHint()) onVisible();
}
}

@ -52,15 +52,15 @@ public class CollectFragment extends BaseFragment implements VodPresenter.OnClic
@Override
protected void initView() {
setRecyclerView();
}
private void setRecyclerView() {
CustomSelector selector = new CustomSelector();
selector.addPresenter(ListRow.class, new CustomRowPresenter(16), VodPresenter.class);
mBinding.recycler.setAdapter(new ItemBridgeAdapter(mAdapter = new ArrayObjectAdapter(selector)));
mBinding.recycler.setHeader(getActivity().findViewById(R.id.result), getActivity().findViewById(R.id.recycler));
mBinding.recycler.setVerticalSpacing(ResUtil.dp2px(16));
}
@Override
protected void initData() {
addVideo(Vod.arrayFrom(json));
}

@ -88,6 +88,10 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback
mBinding.progressLayout.showProgress();
setRecyclerView();
setViewModel();
}
@Override
protected void initData() {
getVideo();
}

Loading…
Cancel
Save