diff --git a/app/src/main/java/com/unionmed/unionmedtv/activity/AddressSelectActivity.java b/app/src/main/java/com/unionmed/unionmedtv/activity/AddressSelectActivity.java index 8fce5e2..4ce5f43 100644 --- a/app/src/main/java/com/unionmed/unionmedtv/activity/AddressSelectActivity.java +++ b/app/src/main/java/com/unionmed/unionmedtv/activity/AddressSelectActivity.java @@ -72,7 +72,9 @@ public class AddressSelectActivity extends BaseActivity { @Override public CharSequence getLabelText(TextView textView, int i, City city) { textView.setFocusable(true); + textView.setId(R.id.tv); textView.setFocusableInTouchMode(true); + textView.setNextFocusUpId(R.id.tv); if(city.getPkey().equals(CacheUtil.getPkey())){ textView.requestFocus(); } diff --git a/app/src/main/java/com/unionmed/unionmedtv/activity/DoctorActivity.java b/app/src/main/java/com/unionmed/unionmedtv/activity/DoctorActivity.java index be66bf3..5dce5ab 100644 --- a/app/src/main/java/com/unionmed/unionmedtv/activity/DoctorActivity.java +++ b/app/src/main/java/com/unionmed/unionmedtv/activity/DoctorActivity.java @@ -150,6 +150,9 @@ public class DoctorActivity extends BaseActivity { recyclerView.post(new Runnable() { @Override public void run() { + if (doctorInfo.size() == 0) { + selectPostion = selectPostion - 1; + } View view = recyclerView.getLayoutManager().findViewByPosition(selectPostion); if (view != null) { recyclerView.requestFocus(); diff --git a/app/src/main/java/com/unionmed/unionmedtv/activity/HospitalActivity.java b/app/src/main/java/com/unionmed/unionmedtv/activity/HospitalActivity.java index aa2c72e..b43ae32 100644 --- a/app/src/main/java/com/unionmed/unionmedtv/activity/HospitalActivity.java +++ b/app/src/main/java/com/unionmed/unionmedtv/activity/HospitalActivity.java @@ -148,7 +148,10 @@ public class HospitalActivity extends BaseActivity { recyclerView.post(new Runnable() { @Override public void run() { - View view = recyclerView.getLayoutManager().findViewByPosition(selectPostion - 1); + if (doctorInfo.size() == 0) { + selectPostion = selectPostion - 1; + } + View view = recyclerView.getLayoutManager().findViewByPosition(selectPostion); if (view != null) { recyclerView.requestFocus(); view.requestFocus(); diff --git a/app/src/main/java/com/unionmed/unionmedtv/fragment/MyDoctorFragment.java b/app/src/main/java/com/unionmed/unionmedtv/fragment/MyDoctorFragment.java index adafb75..8447309 100644 --- a/app/src/main/java/com/unionmed/unionmedtv/fragment/MyDoctorFragment.java +++ b/app/src/main/java/com/unionmed/unionmedtv/fragment/MyDoctorFragment.java @@ -49,7 +49,8 @@ public class MyDoctorFragment extends Fragment implements View.OnClickListener { private int startNum = 0; private int endNum = 10; private int selectPostion = 0;//当前列表item点击位置 - private ImgConstraintLayout constraint; + private ImgConstraintLayout constraint_doctor; + private ImgConstraintLayout constraint_hospital; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_my_doctor, container, false); @@ -70,13 +71,12 @@ public class MyDoctorFragment extends Fragment implements View.OnClickListener { DoctorDetailActivity.StartActivity(getActivity(), memberBean.getPersoninfo().get(0).getUseraccount()); } }); - iv_doctor = view.findViewById(R.id.iv_doctor); - iv_doctor.setOnClickListener(this); - constraint=view.findViewById(R.id.constraint); + constraint_doctor=view.findViewById(R.id.constraint_doctor); View v=getActivity().findViewById(R.id.tv_my_doctor); - constraint.setNextFocusLeftId(v.getId()); - iv_hospital = view.findViewById(R.id.iv_hospital); - iv_hospital.setOnClickListener(this); + constraint_doctor.setNextFocusLeftId(R.id.constraint_doctor); + constraint_doctor.setOnClickListener(this); + constraint_hospital=view.findViewById(R.id.constraint_hospital); + constraint_hospital.setOnClickListener(this); recyclerView.setAdapter(contractedDoctorAdapter); recyclerView.addItemDecoration(new LinearSpacingItemDecoration(getActivity(), 24)); // iv_doctor.setOnFocusChangeListener(new View.OnFocusChangeListener() { @@ -138,9 +138,9 @@ public class MyDoctorFragment extends Fragment implements View.OnClickListener { @Override public void onClick(View view) { - if (view.getId() == R.id.iv_doctor) { + if (view.getId() == R.id.constraint_doctor) { DoctorActivity.StartActivity(getActivity()); - } else if (view.getId() == R.id.iv_hospital) { + } else if (view.getId() == R.id.constraint_hospital) { HospitalActivity.StartActivity(getActivity()); } } diff --git a/app/src/main/java/com/unionmed/unionmedtv/utils/MyGridLayoutManager.java b/app/src/main/java/com/unionmed/unionmedtv/utils/MyGridLayoutManager.java index fc7de4a..dc56cd3 100644 --- a/app/src/main/java/com/unionmed/unionmedtv/utils/MyGridLayoutManager.java +++ b/app/src/main/java/com/unionmed/unionmedtv/utils/MyGridLayoutManager.java @@ -53,8 +53,11 @@ public class MyGridLayoutManager extends GridLayoutManager { int lastVisiblePosition = findLastVisibleItemPosition(); switch (direction) { case View.FOCUS_DOWN: - currentPosition = currentPosition + getSpanCount(); - scrollToPosition(currentPosition); + if(currentPosition + getSpanCount() diff --git a/app/src/main/res/layout/fragment_my_doctor.xml b/app/src/main/res/layout/fragment_my_doctor.xml index 7623658..a981fbe 100644 --- a/app/src/main/res/layout/fragment_my_doctor.xml +++ b/app/src/main/res/layout/fragment_my_doctor.xml @@ -20,7 +20,7 @@ app:layout_constraintTop_toTopOf="parent">