Страницы

Поиск по вопросам

Показаны сообщения с ярлыком touch. Показать все сообщения
Показаны сообщения с ярлыком touch. Показать все сообщения

суббота, 11 января 2020 г.

Дублирование файлов в ветках

#git #echo #touch


При создании файла/директории в локальном репозитории git, файл копируется во все
ветки, а не в ту в которой создается (через консоль и редактор). Как этого избежать?
    


Ответы

Ответ 1



вообще, создаёте вы файлы/каталоги не в репозитории/хранилище, а в рабочем каталоге (working directory/tree). в хранилище файлы (точнее, их содержимое) «попадают» только после команды git commit. при переключении между ветками/коммитами программа git «вычисляет», какие изменения следует внести в рабочий каталог: файлы/каталоги, которые есть в текущей ветке/коммите, но отсутствуют в той, на которую переключаетесь, удаляются; файлы/каталоги, которых нет в текущей ветке/коммите, но которые присутствуют в той, на которую переключаетесь, извлекаются из содержимого хранилища; аналогично извлекается и содержимое файлов, которое отличается: в текущей ветке/коммите — одно, в той, на которую переключаетесь — другое. все же остальные файлы/каталоги при переключении между ветками/коммитами вообще никак не будут затронуты. это относится и к тем файлам/каталогам, которых нет ни в текущей ветке/коммите, ни в той, на которую переключаетесь. Как этого избежать? пока вы не сохранили эти файлы/каталоги внутри хранилища, программа git, по крайней мере, выполняя команду checkout, не будет «касаться» таких «неотслеживаемых» файлов/каталогов внутри рабочего каталога. так что краткий ответ: никак не избежать. так задумано.

среда, 11 декабря 2019 г.

Анимированные действия в Gmail

#touch #android #listview #java #sliding


Здравствуйте! Подскажите, пожалуйста, как и при помощи чего реализована вот такая вещь:



Получается что к ListView через addHeaderView добавили некий хедер. Но, вопрос, как
они отслеживают что идет утягивание списка вниз и в этот момент перекрывается ActionBar
текстовым полем с надписью "Пролистните вниз, чтобы обновить"?
Поиск по ключевым словам в гугле особого успеха не дал.

Второй вопрос: как сделано удаление Item'a через слайд в сторону?



Я реализовал эту функцию через android-swipetodismiss, но это не оригинальное решение
команды Google и оно имеет несколько недостатков в отличии от реализации Gmail.
    


Ответы

Ответ 1



могу посоветовать только по первому поглядеть вот это либу https://github.com/chrisbanes/ActionBar-PullToRefresh у самого прикрутить не вышло быстро, а так как не было острой необходимости, то и бросил.

Обработка касаний (струны в гитаре)

#android #touch #multi_touch


Практикуюсь, решил сделать что-то типа гитары, но не придумаю, как правильно обрабатывать
нажатия. 

Есть 6 струн и надо, когда палец касается верхней струны и идет вниз (зацепляя остальные),
чтобы к ним всем, по очереди, применялись анимации. 

Смог сделать это только при одиночном касании, если по очереди нажимать на струны
то все работает, если прислонить палец о водить по экрану то нет.

 @Override
public boolean onTouch(View v, MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
        switch (v.getId()) {
            case R.id.string1:
                str1.startAnimation(touch_string);
                return false;
            case R.id.string2:
                str2.startAnimation(touch_string);
                return false;
            case R.id.string3:
                str3.startAnimation(touch_string);
                return false;
            case R.id.string4:
                str4.startAnimation(touch_string);
                return false;
            case R.id.string5:
                str5.startAnimation(touch_string);
                return false;
            case R.id.string6:
                str6.startAnimation(touch_string);
                return false;
        }
    }
    return false;
}


Игрался с различными экшенами MotionEvent, но ничего не получилось, как же это правильно
реализовать?

Буду благодарен за ответ!
    


Ответы

Ответ 1



Потому что в данном случае нужно отслеживать не ACTION_DOWN, а ACTION_MOVE . Определите нужную область, повесьте слушатель и обработайте как необходимо. К примеру, берете положение и при совпадении в определенных координатах/промежутке координат выполняйте действие @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getActionMasked()) { case MotionEvent.ACTION_MOVE: x = event.getRawX(); y = event.getRawY(); //TODO обработать нужные места ... break; } return true; }

понедельник, 4 марта 2019 г.

Дублирование файлов в ветках

При создании файла/директории в локальном репозитории git, файл копируется во все ветки, а не в ту в которой создается (через консоль и редактор). Как этого избежать?


Ответ

вообще, создаёте вы файлы/каталоги не в репозитории/хранилище, а в рабочем каталоге (working directory/tree).
в хранилище файлы (точнее, их содержимое) «попадают» только после команды git commit
при переключении между ветками/коммитами программа git «вычисляет», какие изменения следует внести в рабочий каталог:
файлы/каталоги, которые есть в текущей ветке/коммите, но отсутствуют в той, на которую переключаетесь, удаляются; файлы/каталоги, которых нет в текущей ветке/коммите, но которые присутствуют в той, на которую переключаетесь, извлекаются из содержимого хранилища; аналогично извлекается и содержимое файлов, которое отличается: в текущей ветке/коммите — одно, в той, на которую переключаетесь — другое.
все же остальные файлы/каталоги при переключении между ветками/коммитами вообще никак не будут затронуты.
это относится и к тем файлам/каталогам, которых нет ни в текущей ветке/коммите, ни в той, на которую переключаетесь.

Как этого избежать?
пока вы не сохранили эти файлы/каталоги внутри хранилища, программа git, по крайней мере, выполняя команду checkout, не будет «касаться» таких «неотслеживаемых» файлов/каталогов внутри рабочего каталога.
так что краткий ответ: никак не избежать. так задумано.

вторник, 16 октября 2018 г.

Анимированные действия в Gmail

Здравствуйте! Подскажите, пожалуйста, как и при помощи чего реализована вот такая вещь:

Получается что к ListView через addHeaderView добавили некий хедер. Но, вопрос, как они отслеживают что идет утягивание списка вниз и в этот момент перекрывается ActionBar текстовым полем с надписью "Пролистните вниз, чтобы обновить"? Поиск по ключевым словам в гугле особого успеха не дал.
Второй вопрос: как сделано удаление Item'a через слайд в сторону?

Я реализовал эту функцию через android-swipetodismiss, но это не оригинальное решение команды Google и оно имеет несколько недостатков в отличии от реализации Gmail


Ответ

могу посоветовать только по первому поглядеть вот это либу https://github.com/chrisbanes/ActionBar-PullToRefresh у самого прикрутить не вышло быстро, а так как не было острой необходимости, то и бросил.

Обработка касаний (струны в гитаре)

Практикуюсь, решил сделать что-то типа гитары, но не придумаю, как правильно обрабатывать нажатия.
Есть 6 струн и надо, когда палец касается верхней струны и идет вниз (зацепляя остальные), чтобы к ним всем, по очереди, применялись анимации.
Смог сделать это только при одиночном касании, если по очереди нажимать на струны то все работает, если прислонить палец о водить по экрану то нет.
@Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { switch (v.getId()) { case R.id.string1: str1.startAnimation(touch_string); return false; case R.id.string2: str2.startAnimation(touch_string); return false; case R.id.string3: str3.startAnimation(touch_string); return false; case R.id.string4: str4.startAnimation(touch_string); return false; case R.id.string5: str5.startAnimation(touch_string); return false; case R.id.string6: str6.startAnimation(touch_string); return false; } } return false; }
Игрался с различными экшенами MotionEvent, но ничего не получилось, как же это правильно реализовать?
Буду благодарен за ответ!


Ответ

Потому что в данном случае нужно отслеживать не ACTION_DOWN, а ACTION_MOVE . Определите нужную область, повесьте слушатель и обработайте как необходимо. К примеру, берете положение и при совпадении в определенных координатах/промежутке координат выполняйте действие
@Override public boolean onTouch(View v, MotionEvent event) { switch (event.getActionMasked()) { case MotionEvent.ACTION_MOVE: x = event.getRawX(); y = event.getRawY(); //TODO обработать нужные места ... break; } return true; }