[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.viewbinding.ViewBinding;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.Constant; import com.fongmi.android.tv.Constant;
import com.fongmi.android.tv.R; import com.fongmi.android.tv.R;
import com.fongmi.android.tv.api.ApiConfig; import com.fongmi.android.tv.api.ApiConfig;
@ -86,7 +87,6 @@ public class CollectActivity extends BaseActivity {
mBinding.recycler.addOnChildViewHolderSelectedListener(new OnChildViewHolderSelectedListener() { mBinding.recycler.addOnChildViewHolderSelectedListener(new OnChildViewHolderSelectedListener() {
@Override @Override
public void onChildViewHolderSelected(@NonNull RecyclerView parent, @Nullable RecyclerView.ViewHolder child, int position, int subposition) { public void onChildViewHolderSelected(@NonNull RecyclerView parent, @Nullable RecyclerView.ViewHolder child, int position, int subposition) {
mBinding.pager.setCurrentItem(position);
onChildSelected(child); onChildSelected(child);
} }
}); });
@ -140,8 +140,16 @@ public class CollectActivity extends BaseActivity {
if (child == null) return; if (child == null) return;
mOldView = child.itemView; mOldView = child.itemView;
mOldView.setActivated(true); 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() { private CollectFragment getFragment() {
return (CollectFragment) mPageAdapter.instantiateItem(mBinding.pager, 0); 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); protected abstract ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container);
private boolean init;
@Nullable @Nullable
@Override @Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
@ -23,12 +25,29 @@ public abstract class BaseFragment extends Fragment {
@Override @Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
initView(); initView();
initEvent();
} }
protected void initView() { 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 @Override
protected void initView() { protected void initView() {
setRecyclerView();
}
private void setRecyclerView() {
CustomSelector selector = new CustomSelector(); CustomSelector selector = new CustomSelector();
selector.addPresenter(ListRow.class, new CustomRowPresenter(16), VodPresenter.class); selector.addPresenter(ListRow.class, new CustomRowPresenter(16), VodPresenter.class);
mBinding.recycler.setAdapter(new ItemBridgeAdapter(mAdapter = new ArrayObjectAdapter(selector))); mBinding.recycler.setAdapter(new ItemBridgeAdapter(mAdapter = new ArrayObjectAdapter(selector)));
mBinding.recycler.setHeader(getActivity().findViewById(R.id.result), getActivity().findViewById(R.id.recycler)); mBinding.recycler.setHeader(getActivity().findViewById(R.id.result), getActivity().findViewById(R.id.recycler));
mBinding.recycler.setVerticalSpacing(ResUtil.dp2px(16)); mBinding.recycler.setVerticalSpacing(ResUtil.dp2px(16));
}
@Override
protected void initData() {
addVideo(Vod.arrayFrom(json)); addVideo(Vod.arrayFrom(json));
} }

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

Loading…
Cancel
Save