Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.51/135: Рейтинг темы: голосов - 135, средняя оценка - 4.51
86 / 86 / 13
Регистрация: 03.03.2011
Сообщений: 1,873
1

Перелистывание экранов

07.05.2013, 22:26. Показов 26090. Ответов 96
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Если кто пользовался официальным приложение для ВК под андройд, то в разделе "новости" если провести пальцем по экрану,то от выползает как бы его продолжение (такой эффект встречается довольно часто в множестве приложений)
существует ли какой - либо контейнер для этого, разметка или это все делается иначе?
подскажите как
надо не просто сменить экран ( функцией setContentView, например) ,а именно перелистыванием
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2013, 22:26
Ответы с готовыми решениями:

Анимация перелистывание
Доброго времени суток! Кто знает? Как сделать так чтобы перелистывание активитиев происходило так...

Создание экранов
Только начал изучать Android да и Java тоже. Хочу узнать, как сделать несколько экранов. Типа...

Горизонтальная прокрутка экранов
Здравствуйте. Подскажите пожалуйста, как можно создать частичную горизонтальную прокрутку экранов,...

Генерация цветовых экранов
Добрый день! Необходимо реализовать мигание экрана смартфона в соответствии с определенным...

96
86 / 86 / 13
Регистрация: 03.03.2011
Сообщений: 1,873
20.05.2013, 23:52  [ТС] 61
Author24 — интернет-сервис помощи студентам
тогда вариант V0v1k`а используйте
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
21.05.2013, 00:00 62
Цитата Сообщение от spydark91 Посмотреть сообщение
как еще вариант отлавливать событие перелистывания и смотреть крайняя ли эта страница, если да, то переходим на другую крайнюю
так не будет нормальной анимации перелистывания.
0
86 / 86 / 13
Регистрация: 03.03.2011
Сообщений: 1,873
21.05.2013, 00:07  [ТС] 63
перелистывание есть, но гораздо быстрее, нежели это делать пальцем
только что проверил
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
21.05.2013, 00:11 64
но нет контроля над перелистывание...
0
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
26.05.2013, 03:49 65
Вернусь ещё раз: cтоит задача запретить перелистывание экрана пальцем, между фрагментами. Предложите варианты, а то ничего найти не получается. Надеюсь же это возможно.?
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.05.2013, 04:07 66
выложите проект, я днем поэксперементирую.
0
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
26.05.2013, 04:48 67
Цитата Сообщение от V0v1k Посмотреть сообщение
выложите проект, я днем поэксперементирую.
благодарю, буду очень ждать результатов. Вот проект:
Вложения
Тип файла: rar TestBlockFlipped.rar (814.9 Кб, 9 просмотров)
0
86 / 86 / 13
Регистрация: 03.03.2011
Сообщений: 1,873
26.05.2013, 12:59  [ТС] 68
Попробуйте это посмотреть
тут только перелистывание
мб станет понятнее
Вложения
Тип файла: rar Slide.rar (987.7 Кб, 18 просмотров)
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.05.2013, 13:27 69
первый способ
Java
1
2
3
4
5
6
7
8
9
10
11
mViewPager.setOnTouchListener(new OnTouchListener() {
 
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (isScrollEnable) {
                    return false;
                } else {
                    return true;
                }
            }
        });
второй - написать свой класс наследующий ViewPager и в нем
Java
1
2
3
4
5
6
7
8
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
             if (isScrollEnable) {
            return super.onInterceptTouchEvent(ev);
         } else {
                  return false;
             }
}
возможно есть еще способы.

Добавлено через 6 минут
еще нашел метод beginFakeDrag(); отключающий скролинг.

Добавлено через 50 секунд
ну и соответствующий для включения - endFakeDrag()
2
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
26.05.2013, 15:05 70
А не могли бы вы подсказать куда этот код внести. Попробовал первый вариант закинуть в onCreate в Activity содержащего фрагменты и при попытке перелистнуть крошится.

Добавлено через 9 минут
добавил в поле:
Java
1
protected static final boolean isScrollEnable = false;
теперь работает, не перелистывает, но есть одно НО, если потянуть за button то оно начинает перелистывать как бы столько, сколько ты тянешь.
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.05.2013, 15:27 71
хм, действительно, с первым и третьим способом такая лажа. а второй способ пробовали?

Добавлено через 11 минут
вот так все прекрасно работает:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package by.example.testblockflipped;
 
import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
 
public class MyViewPager extends ViewPager {
 
    public MyViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
 
    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        return false;
    }
 
    public boolean onTouchEvent(MotionEvent event) {
        return false;
    }
 
}
Добавлено через 2 минуты
если нужна возможность включать перелистывание, то добавляете флажок и в этих методах при включенном перелистывании вызываете методы родительского класса (return super.onInterceptTouchEvent(ev))
0
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
26.05.2013, 15:50 72
а как этот класс использовать???

так?
Java
1
MyViewPager myViewPager = new MyViewPager(this, attrs);
а что за attrs?
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.05.2013, 15:59 73
просто меняете лаяут
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:custom="http://schemas.android.com/apk/res/by.example.testblockflipped"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical" >
 
    <by.example.testblockflipped.MyViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/ic_launcher"
        android:gravity="center" >
    </by.example.testblockflipped.MyViewPager>
 
</RelativeLayout>
и все.
0
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
26.05.2013, 16:16 74
Про loyaout я и забыл но в коде, то менять тоже нужно. Уже всё перепробовал. Что делать?
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.05.2013, 16:17 75
я просто добавил этот класс и изменил лаяут(выше выложил), больше ничего не делал и перелистывание пропало.
0
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
26.05.2013, 16:19 76
Цитата Сообщение от V0v1k Посмотреть сообщение
я просто добавил этот класс и изменил лаяут(выше выложил), больше ничего не делал и перелистывание пропало.
а можете выложить свой проект?
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.05.2013, 16:26 77
TestBlockFlipped.7z
1
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
26.05.2013, 16:48 78
Да это работает.

Добавлено через 11 минут
Как ни странно теперь вытекла новая проблемка. А как же кнопку Back заставить возвращаться в этих фрагментах?
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.05.2013, 16:53 79
если я правильно понял вопрос, то вам нужно в активити добавить
Java
1
2
3
4
5
6
7
8
9
@Override
    public void onBackPressed() {
        int currentTab = mViewPager.getCurrentItem();
        if (currentTab > 0) {
            mViewPager.setCurrentItem(currentTab - 1);
        } else {
            super.onBackPressed();
        }
    }

Не по теме:

в дальнейшем старайтесь задавать каждый вопрос в отдельной теме и четко его формулировать

1
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
26.05.2013, 17:23 80
Цитата Сообщение от V0v1k Посмотреть сообщение
если я правильно понял вопрос, то вам нужно в активити добавить
да, это то, что нужно!
0
26.05.2013, 17:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2013, 17:23
Помогаю со студенческими работами здесь

TabHost и переключение экранов
Доброго времени суток и с Днём Программиста!=) У меня возникла ситуация... ЕстьTabHost c тремя...

Размеры экранов планшетов
Всем привет. Вот какая штука. У гуглов в доках сказано что если в папочку sw600dp положить...

Про DPI экранов
Как быть, я сделал текстовое приложение без графики, а на различных девайсах разный DPI и на одних...

Разметка для разных экранов
У меня такой вопрос как сделать разметку для разных размеров экранов наиболее оптимально. Ну если в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru