Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Alex_Fedor
42 / 42 / 5
Регистрация: 20.01.2015
Сообщений: 279
#1

Перемещение DialogFragment

21.12.2016, 09:34. Просмотров 263. Ответов 3
Метки нет (Все метки)

На основе Dialog Fragment делаю свой диалог. Подскажите куда копать, чтобы MyGialog движением пальца перемещать по экрану.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2016, 09:34
Ответы с готовыми решениями:

DialogFragment в Fragment
можно ли визивать DialogFragment с Fragment???

Особенности DialogFragment
И снова здравствуйте) Почему когда показывается диалог, то выполнение кода после dialog.show(...)...

Переопределить onDismiss у DialogFragment
Имеется класс, наследованный от DialogFragment. Хочется переопределить onDismiss у DialogFragment...

Разные стили DialogFragment
Есть несколько AppCompatDialogFragment. Когда я запускаю приложение на телефоне с android 6.0.0, то...

Запрет пересоздания DialogFragment
Привет. Можно ли как нибуть запретить пересоздание DialogFragment при повороте? Не Activity а...

3
Pablito
2707 / 2154 / 731
Регистрация: 12.05.2014
Сообщений: 7,521
Завершенные тесты: 1
21.12.2016, 12:11 #2
копать в сторону НЕ диалоговых окон
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,732
22.12.2016, 12:34 #3
В принципе, да, лучше недиалоговым окном. При открытии взять снимок экрана, затем отобразить прямоугольник и давать возможность его двигать. Но можно и диалоговым, тоже сделать снимок, открыть на всю доступную область и показать прямоугольник. Я в одном проекте так сделал (естественно, ничего не двигал). Уже не помню, почему именно диалоговым.
0
Alex_Fedor
42 / 42 / 5
Регистрация: 20.01.2015
Сообщений: 279
24.12.2016, 16:25  [ТС] #4
Dialog Fragment немого дергается при перемещении как поправить ?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
public class DialogTranslate extends DialogFragment implements OnClickListener, OnTouchListener{
    TextView tvTransDialog;
    Button btnOkTrnsDialog;
    String translate;
    float xPosition=0,yPosition=0;
    
    public DialogTranslate(String translate) {
        // TODO Auto-generated constructor stub
        this.translate=translate;
    }
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View v1=inflater.inflate(R.layout.translate_alert_dialog, null);
        tvTransDialog=(TextView) v1.findViewById(R.id.tvTransDialog);
        tvTransDialog.setText(translate);
        btnOkTrnsDialog=(Button) v1.findViewById(R.id.btnOkTrnsDialog);
        btnOkTrnsDialog.setOnClickListener(this);
        v1.setOnTouchListener(this);
        return v1;
    }
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
      Dialog dialog = super.onCreateDialog(savedInstanceState);
      setStyle(STYLE_NO_TITLE, 0);
      return dialog;
    }
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        dismiss();
    }
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        // TODO Auto-generated method stub
        Window window = getDialog().getWindow();
        WindowManager.LayoutParams params = window.getAttributes();
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            xPosition=event.getX();
            yPosition=event.getY();
            break;
        case MotionEvent.ACTION_MOVE:// как то организовать движение по экрану 
            double dX=event.getX()-xPosition;
            double dY=event.getY()-yPosition;
            params.x+=dX;
            params.y+=dY;
            break;
        default:
            break;
        }
        window.setAttributes(params);
        return true;
    }
}
Добавлено через 12 минут
Дерганье немного уменьшил, но все равно не Айс.
Java
1
2
3
4
5
6
7
8
case MotionEvent.ACTION_MOVE:// как то организовать движение по экрану 
            double dX=event.getX()-xPosition;
            double dY=event.getY()-yPosition;
            if(Math.abs(dX) >3 || Math.abs(dY)>3){
                params.x+=dX;
                params.y+=dY;
            }
            break;
Добавлено через 2 часа 27 минут
Блин еще одна печалька. Чего только не пробовал. Но при горизонтальной ориентации диалог фрагмент никак не хочет разворачиваться на всю ширину экрана. Плз подскажите как исправить.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2016, 16:25

Изменить стиль DialogFragment
Приветствую, Есть приложение, в приложении есть DialogFragment с DatePicker и парой кнопок. Как...

Данные из DialogFragment в Activity
Всем добрый день, помогите пож. советом. Программировать начал неделю назад поэтому вопрос думаю...

Получение данных из DialogFragment
Добрый день. Задача: получать данные из DialogFragment. Диалог вызывается из ActionBar....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru