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

BottomSheetDialogFragment с EditText убегает после сворачивания клавиатуры - Программирование Android

28.07.2016, 23:22. Просмотров 371. Ответов 0
Метки нет (Все метки)

При нажатии на кнопку вылезает фрагмент снизу, на фрагменте edit text и button
Когда вводишь текст клавиатура пододвигает этот фрагмент на середину экрана, а когда клавиатуру сворачиваешь - фрагмент практически уползает за ней, остаётся небольшая часть его, которую можно вывдвинуть обратно.
Как заставить фрагмент не убегать после сворачивания клавиатуры?
Вот код фрагмента:
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
public class PasswordRestoringDialogFragment extends BottomSheetDialogFragment {
 
    @BindView(R.id.twPassInfo)
    TextView passInfo;
 
    @BindView(R.id.bnRestorePass)
    Button restorePass;
 
    @BindView(R.id.etEmailPhone)
    EditText emailPhone;
 
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
 
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.pass_restore_modal, container, false);
        ButterKnife.bind(this, view);
 
        Typeface typeface1 = Typeface.createFromAsset(SignInActivity.getInstance().getAssets(), "SourceSansPro-Regular.ttf");
        emailPhone.setTypeface(typeface1);
        passInfo.setTypeface(typeface1);
 
 
        Typeface typeface2 = Typeface.createFromAsset(SignInActivity.getInstance().getAssets(), "SourceSansPro-Bold.ttf");
        restorePass.setTypeface(typeface2);
 
        return view;
    }
 
    private BottomSheetBehavior.BottomSheetCallback mBottomSheetBehaviorCallback = new BottomSheetBehavior.BottomSheetCallback() {
        @Override
        public void onStateChanged(@NonNull View bottomSheet, int newState) {
            if (newState == BottomSheetBehavior.STATE_HIDDEN) {
                dismiss();
            }
        }
 
        @Override
        public void onSlide(@NonNull View bottomSheet, float slideOffset) {
        }
    };
 
    @NonNull
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        Dialog dialog = super.onCreateDialog(savedInstanceState);
        dialog.setOnShowListener(new DialogInterface.OnShowListener() {
            @Override
            public void onShow(DialogInterface dialog) {
                BottomSheetDialog bottomSheetDialog = (BottomSheetDialog) dialog;
                FrameLayout bottomSheet = (FrameLayout) ((BottomSheetDialog) dialog).findViewById(android.support.design.R.id.design_bottom_sheet);
                BottomSheetBehavior.from(bottomSheet).setState(BottomSheetBehavior.STATE_EXPANDED);
            }
        });
        
        return dialog;
    }
 
    @Override
    public void setupDialog(Dialog dialog, int style) {
        super.setupDialog(dialog, style);
        View contentView = View.inflate(getContext(), R.layout.pass_restore_modal, null);
        dialog.setContentView(contentView);
        CoordinatorLayout.LayoutParams layoutParams =
                (CoordinatorLayout.LayoutParams) ((View) contentView.getParent()).getLayoutParams();
        CoordinatorLayout.Behavior behavior = layoutParams.getBehavior();
        if (behavior != null && behavior instanceof BottomSheetBehavior) {
            ((BottomSheetBehavior) behavior).setBottomSheetCallback(mBottomSheetBehaviorCallback);
        }
 
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2016, 23:22
Я подобрал для вас темы с готовыми решениями и ответами на вопрос BottomSheetDialogFragment с EditText убегает после сворачивания клавиатуры (Программирование Android):

Перехватить сообытие сворачивания клавиатуры
Задача: произвести расчет по окончании ввода текста в EditText. Как...

EditText, кнопки вместо клавиатуры, использование курсора, вызов клавиатуры "вручную"
Ну, в общем, я постарался написать наиболее подходящее название темы....

EditText и появление клавиатуры
У меня есть форма, на которой есть EditText и кнопка. При открытии формы на...

Установка курсора в EditText и отображение клавиатуры
Суть вопроса, есть активность из которой вызывается диалог. Диалог состоит из...

HandlerThread. Восстановление работы после сворачивания
Доброго времени суток. Есть у меня класс-наследник от HandlerThread,...

При нажатии на EditText показать клавиатуры с нужным языком
как вызвать клавиатуру с нужным языком? например при нажатии на EditText...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2016, 23:22
Привет! Вот еще темы с решениями:

EditText отключение выплывающей клавиатуры при загрузки приложения
подскажите как сделать) заранее спасибо

Как всё сместить вверх, чтобы EditText оказался вверху клавиатуры
Работаю на Android Studio. Как всё сместить вверх, чтобы EditText оказался...

Ввод в один EditText и авто-вычисление в двух других EditText
Всем привет. Есть три поля EditText,виртуальные клавиатуры у всех...

EditText смещается вниз при вводе текста, который занимает объём больше, чем EditText
EditText сещается вниз при вводе текста который занимает обём больше чем...


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

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

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