Вынести view за пределы экрана

255
25 февраля 2017, 04:43

Можно ли вынести view за пределы экрана? Как бы это реализовать, желательно, в xml, в коде java тоже сойдет. В общем, мне нужно конец вьюшки (красная полоска) перенести к зеленой полоске

Answer 1

Всё зависит от того насколько вы хотите контролировать процесс раскрытия/закрытия контейнера. Самый простой вариант - просто менять ему видимость с GONE на VISIBLE. Сделать это можно только программно методом View#setVisibility(int visibilityConstant)

Например так:

//схлопнуть
containerView.setVisibility(View.GONE);
//раскрыть
containerView.setVisibility(View.VISIBLE);

В разметке вы можете лишь задать начальное состояние:

<View
   ...
   android:visibility="gone"/>

Более полный контроль над скоростью раскрытия и прочими штуками можно получить написав код для анимированного изменения высоты контейнера. Например так:

public static void expand(final View v, int duration, int targetHeight) {
    int prevHeight = v.getHeight();
    v.setVisibility(View.VISIBLE);
    ValueAnimator valueAnimator = ValueAnimator.ofInt(prevHeight, targetHeight);
    valueAnimator.addUpdateListener(animation -> {
        v.getLayoutParams().height = (int) animation.getAnimatedValue();
        v.requestLayout();
    });
    valueAnimator.setInterpolator(new DecelerateInterpolator());
    valueAnimator.setDuration(duration);
    valueAnimator.start();
}
public static void collapse(final View v, int duration, int targetHeight) {
    int prevHeight = v.getHeight();
    ValueAnimator valueAnimator = ValueAnimator.ofInt(prevHeight, targetHeight);
    valueAnimator.setInterpolator(new DecelerateInterpolator());
    valueAnimator.addUpdateListener(animation -> {
        v.getLayoutParams().height = (int) animation.getAnimatedValue();
        v.requestLayout();
    });
    valueAnimator.setInterpolator(new DecelerateInterpolator());
    valueAnimator.setDuration(duration);
    valueAnimator.start();
}
READ ALSO
Стиль EditText (заблокированного)

Стиль EditText (заблокированного)

Как изменить цвет текста у виджета EditText, в состоянии enabled(false)?

332
Не удаётся сохранить HashSet коллекцию объектов в XML файл (java)

Не удаётся сохранить HashSet коллекцию объектов в XML файл (java)

Имеются несколько объектов, которые нужно объединить в HashSet коллекцию и сохранить в XML файле и в дальнейшем их от туда извлечь

256
Как сохранить Uri в базу данных

Как сохранить Uri в базу данных

Я загружаю фото из галлереи таким способом

250
Код Java на Scala

Код Java на Scala

Хочу уточнить вопрос про использование классов и библиотек написанных на java в языке scalaЧто необходимо сделать чтобы можно это сделать? Импортировать?...

252