Я хочу сделать макет видимым, используя длинный щелчок, и невидимым, щелкнув снова, у меня это не работает. Пожалуйста, помогите мне с этим. Код приведен ниже. когда я нажимаю один раз, макет отображается, когда я нажимаю снова, макет должен исчезнуть, но все же он виден.
public class ReminderstestExplaination extends Fragment {
RecyclerView testexplntion_recycle;
CustomRecyclerview customRecyclerview;
LinearLayout reminderpage_addbutton,extraremlay,del_editlay;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.remindertest_explaination,container,false);
extraremlay = v.findViewById (R.id.extraremlay);
extraremlay.setOnLongClickListener (new View.OnLongClickListener () {
@Override
public boolean onLongClick(View view) {
del_editlay.setVisibility (View.VISIBLE);
return true;
}
});
}
вам нужно отладить его, чтобы узнать, почему он не работает
Вам нужно, чтобы код стал видимым при длинном щелчке и невидимым при другом длинном щелчке или обычном щелчке? Ваш текущий OnLongClickListener
устанавливает видимость только в true. Если вы хотите переключать оба состояния с помощью длинного щелчка, вам нужно условие if
.
похоже, вы работаете со скрытием/показом в recyclerview, можете ли вы попытаться создать пример активности с помощью кнопки и просмотра и попробовать с ними тот же код.
Сделайте это, отслеживайте видимость с помощью логической переменной и меняйте ее каждый раз, когда выполняется длинный щелчок.
public class ReminderstestExplaination extends Fragment {
boolean isVisible = false;
RecyclerView testexplntion_recycle;
CustomRecyclerview customRecyclerview;
LinearLayout reminderpage_addbutton,extraremlay,del_editlay;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.remindertest_explaination,container,false);
extraremlay = v.findViewById (R.id.extraremlay);
extraremlay.setOnLongClickListener (new View.OnLongClickListener () {
@Override
public boolean onLongClick(View view) {
if (isVisible) {
isVisible = false;
del_editlay.setVisibility
(View.INVISIBLE);
}
}
else {
isVisible = true;
del_editlay.setVisibility
(View.VISIBLE);}
return true;
}
});
}
Я полагаю, del_editlay.getVisibility()
или del_editlay.isShown()
можно использовать вместо сохранения логического значения?
Пожалуйста, прикрепите XML и полный код вашего фрагмента