У меня есть представление об переработке, которое отображает четыре номера. 1,2,3,4. Когда я выбираю любое из этих чисел, все кажется в порядке. Проблема в том, когда я горизонтально прокручивать, а другие числа заполняют мой экран: 4,5,6,7. < /P>
< /p>
wation 1 < /strong> < /p>
state22
В этом примере прокрутка между > Состоянием 1 и 2 , 7 и 1 выбираются, когда следует выбрать только один из них < /p>
Вопрос < /strong>: как я могу сделать так, чтобы это было так Нажав одно из номеров, отказавшихся от числа, которые не видны на экране? p>
public class MyAdapter extends RecyclerView.Adapter{
private String[] days;
private String[] numbers;
SelectionTracker mSelectionTracker;
private static MyAdapter myAdapter;
public MyAdapter(String[] day, String[] number){
days = day;
numbers = number;
setHasStableIds(true);
}
//Set Keys
public void setSelectionTracker(SelectionTracker selectionTracker) {
mSelectionTracker = selectionTracker;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
String dayInit = days[position];
String numberInit = numbers[position];
Long id = getItemId(position);
boolean isSelected = false;
if(mSelectionTracker != null) {
if (mSelectionTracker.isSelected(id)) {
isSelected = true;
}
}
holder.bind(position, id, dayInit, numberInit, isSelected);
}
public static class MyViewHolder extends RecyclerView.ViewHolder{
public TextView dayView, numberView;
public View view;
ScheduleDetails scheduleDetails = new ScheduleDetails();
public MyViewHolder(View itemView){
super(itemView);
view = itemView;
dayView = itemView.findViewById(R.id.day);
numberView = itemView.findViewById(R.id.day_number);
}
void bind(int position, Long key, String dayInit, String numberInit, Boolean isSelected){
scheduleDetails.position = position;
scheduleDetails.identifier = key;
System.out.println("Check: " + position);
dayView.setText(dayInit);
numberView.setText(numberInit);
view.setActivated(isSelected);
}
public ItemDetailsLookup.ItemDetails getItemDetails(@NonNull MotionEvent motionEvent){
return scheduleDetails;
}
}
static class ScheduleDetails extends ItemDetailsLookup.ItemDetails{
int position;
Long identifier;
@Override
public int getPosition() {
return position;
}
@Nullable
@Override
public Long getSelectionKey() { return identifier; }
@Override
public boolean inSelectionHotspot(@NonNull MotionEvent e){
return true;
}
}
// Create new views (invoked by the layout manager)
@Override
public MyAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.recycler_layout, parent, false);
MyViewHolder vh = new MyViewHolder(view);
return vh;
}
@Override
public int getItemCount() {
return days.length;
}
@Override
public long getItemId(int position) {
return position;
}
< /code>
} < /p>
Подробнее здесь: https://stackoverflow.com/questions/595 ... -is-hidden
Взгляд переработчика не отказался, когда спрятано представление ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1739531623
Anonymous
У меня есть представление об переработке, которое отображает четыре номера. 1,2,3,4. Когда я выбираю любое из этих чисел, все кажется в порядке. Проблема в том, когда я горизонтально прокручивать, а другие числа заполняют мой экран: 4,5,6,7. < /P>
< /p>
[b] wation 1 < /strong> < /p>
state22 [/b]
В этом примере прокрутка между [b]> Состоянием 1 [/b] и [b] 2 [/b], 7 и 1 выбираются, когда следует выбрать только один из них < /p>
Вопрос < /strong>: как я могу сделать так, чтобы это было так Нажав одно из номеров, отказавшихся от числа, которые не видны на экране? p>
public class MyAdapter extends RecyclerView.Adapter{
private String[] days;
private String[] numbers;
SelectionTracker mSelectionTracker;
private static MyAdapter myAdapter;
public MyAdapter(String[] day, String[] number){
days = day;
numbers = number;
setHasStableIds(true);
}
//Set Keys
public void setSelectionTracker(SelectionTracker selectionTracker) {
mSelectionTracker = selectionTracker;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
String dayInit = days[position];
String numberInit = numbers[position];
Long id = getItemId(position);
boolean isSelected = false;
if(mSelectionTracker != null) {
if (mSelectionTracker.isSelected(id)) {
isSelected = true;
}
}
holder.bind(position, id, dayInit, numberInit, isSelected);
}
public static class MyViewHolder extends RecyclerView.ViewHolder{
public TextView dayView, numberView;
public View view;
ScheduleDetails scheduleDetails = new ScheduleDetails();
public MyViewHolder(View itemView){
super(itemView);
view = itemView;
dayView = itemView.findViewById(R.id.day);
numberView = itemView.findViewById(R.id.day_number);
}
void bind(int position, Long key, String dayInit, String numberInit, Boolean isSelected){
scheduleDetails.position = position;
scheduleDetails.identifier = key;
System.out.println("Check: " + position);
dayView.setText(dayInit);
numberView.setText(numberInit);
view.setActivated(isSelected);
}
public ItemDetailsLookup.ItemDetails getItemDetails(@NonNull MotionEvent motionEvent){
return scheduleDetails;
}
}
static class ScheduleDetails extends ItemDetailsLookup.ItemDetails{
int position;
Long identifier;
@Override
public int getPosition() {
return position;
}
@Nullable
@Override
public Long getSelectionKey() { return identifier; }
@Override
public boolean inSelectionHotspot(@NonNull MotionEvent e){
return true;
}
}
// Create new views (invoked by the layout manager)
@Override
public MyAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.recycler_layout, parent, false);
MyViewHolder vh = new MyViewHolder(view);
return vh;
}
@Override
public int getItemCount() {
return days.length;
}
@Override
public long getItemId(int position) {
return position;
}
< /code>
} < /p>
Подробнее здесь: [url]https://stackoverflow.com/questions/59553123/recycler-view-not-deselecting-when-view-is-hidden[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия