遥控移动焦点优化

dev
李桢 1 year ago
parent 1ea0b5c9f9
commit d20870fb26
  1. 3
      app/src/main/java/com/unionmed/unionmedtv/activity/HospitalActivity.java
  2. 16
      app/src/main/java/com/unionmed/unionmedtv/fragment/MyDoctorFragment.java
  3. 21
      app/src/main/java/com/unionmed/unionmedtv/utils/MyGridLayoutManager.java

@ -128,6 +128,9 @@ public class HospitalActivity extends BaseActivity {
public void onSucceed(HttpData<ApiResponse<GetHospitalApi>> stringHttpData) {
LogUtils.e("成功:" + stringHttpData);
if (stringHttpData.getData().getCode() == 200) {
if(stringHttpData.getData().getData()==null){
return;
}
List<GetHospitalApi.MemberBean> doctorInfo = stringHttpData.getData().getData().getMember();
if (doctorInfo == null) {
return;

@ -117,14 +117,16 @@ public class MyDoctorFragment extends Fragment implements View.OnClickListener {
public void onSucceed(HttpData<ApiResponse<GetContractedDoctorApi.DoctorInfo>> stringHttpData) {
LogUtils.e("成功:" + stringHttpData);
if (stringHttpData.isRequestSucceed()) {
List<GetContractedDoctorApi.DoctorInfo.MemberBean> doctorInfo = stringHttpData.getData().getData().getMember();
if (doctorInfo.size()==0) {
recyclerView.setVisibility(View.GONE);
return;
if(stringHttpData.getData().isInnerRequestSucceed()){
List<GetContractedDoctorApi.DoctorInfo.MemberBean> doctorInfo = stringHttpData.getData().getData().getMember();
if (doctorInfo.size()==0) {
recyclerView.setVisibility(View.GONE);
return;
}
recyclerView.setVisibility(View.VISIBLE);
list.addAll(doctorInfo);
contractedDoctorAdapter.notifyDataSetChanged();
}
recyclerView.setVisibility(View.VISIBLE);
list.addAll(doctorInfo);
contractedDoctorAdapter.notifyDataSetChanged();
}
}

@ -51,37 +51,40 @@ public class MyGridLayoutManager extends GridLayoutManager {
@Override
public View onInterceptFocusSearch(View focused, int direction) {
int currentPosition = getPosition(getFocusedChild());
int spanCount = getSpanCount();
int lastVisiblePosition = findLastVisibleItemPosition();
int count = getItemCount()-1;
switch (direction) {
case View.FOCUS_DOWN:
if(currentPosition + getSpanCount()<lastVisiblePosition){
if (currentPosition + getSpanCount() < count) {
int nextRowFirstPosition1 = currentPosition + getSpanCount();
scrollToPosition(nextRowFirstPosition1);
return findViewByPosition(nextRowFirstPosition1);
}else if(currentPosition + getSpanCount()>lastVisiblePosition){
scrollToPosition(lastVisiblePosition);
return findViewByPosition(lastVisiblePosition);
} else if (currentPosition + getSpanCount() > count) {
scrollToPosition(count);
return findViewByPosition(count);
}
break;
case View.FOCUS_UP:
if (currentPosition % getSpanCount() == 0 && upView != null) {
upView.requestFocus();
} else if (currentPosition - getSpanCount() < count) {
int nextRowFirstPosition1 = currentPosition - getSpanCount();
scrollToPosition(nextRowFirstPosition1);
return findViewByPosition(nextRowFirstPosition1);
}
break;
case View.FOCUS_RIGHT:
if (currentPosition % getSpanCount() == getSpanCount() - 1) {
if (currentPosition<count) {
int nextRowFirstPosition = currentPosition + getSpanCount() - (getSpanCount() - 1);
scrollToPosition(nextRowFirstPosition);
return findViewByPosition(nextRowFirstPosition);
} else if (currentPosition == lastVisiblePosition) {
} else if (currentPosition == count) {
return findViewByPosition(currentPosition);
}
break;
case View.FOCUS_LEFT:
if (currentPosition == 0) {
return findViewByPosition(currentPosition);
} else if (currentPosition % getSpanCount() == 0) {
} else if (currentPosition <=count) {
int nextRowFirstPosition = currentPosition - 1;
scrollToPosition(nextRowFirstPosition);
return findViewByPosition(nextRowFirstPosition);

Loading…
Cancel
Save