Я использую режим прокрутки во фрагменте, но экран не прокручивается вверх, когда клавиатура отображается так, как должно быть.
Вот сценарий:
У меня есть mainActivity, которая имеет нижнюю панель навигации плюс макет фрейма, который работает как контейнер для действия.
Вот код:
Экран фрагмента содержит несколько полей ввода и кнопки, которые заключены в ограниченный макет, а затем ограниченный макет заключен в прокрутку, чтобы его можно было прокручивать вверх, когда клавиатура активна. < b r / > В о т к о д ф р а г м е н т а X M L - ф а й л а : < / p > < b r / > < b r / > < c o d e > & l t ; ? x m l v e r s i o n = " 1 . 0 " e n c o d i n g = " u t f - 8 " ? & g t ; < b r / > & l t ; S c r o l l V i e w x m l n s : a n d r o i d = " h t t p : / / s c h e m a s . a n d r o i d . c o m / a p k / r e s / a n d r o i d " < b r / > a n d r o i d : l a y o u t _ w i d t h = " m a t c h _ p a r e n t " < b r / > a n d r o i d : l a y o u t _ h e i g h t = " m a t c h _ p a r e n t " < b r / > x m l n s : a p p = " h t t p : / / s c h e m a s . a n d r o i d . c o m / a p k / r e s - a u t o " & g t ; < b r / > & l t ; a n d r o i d . s u p p o r t . c o n s t r a i n t . C o n s t r a i n t L a y o u t < b r / > a n d r o i d : l a y o u t _ w i d t h = " m a t c h _ p a r e n t " < b r / > a n d r o i d : l a y o u t _ h e i g h t = " m a t c h _ p a r e n t " < b r / > < b r / > & g t ; < b r / > & l t ; i n c l u d e < b r / > a n d r o i d : i d = " @ + i d / a p p _ b a r _ n e w " < b r / > l a y o u t = " @ l a y o u t / a p p _ b a r _ n e w " < b r / > a p p : l a y o u t _ c o n s t r a i n t B o t t o m _ t o T o p O f = " @ + i d / b t n _ g e t _ l o c a t i o n " < b r / > a p p : l a y o u t _ c o n s t r a i n t E n d _ t o E n d O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t S t a r t _ t o S t a r t O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t T o p _ t o T o p O f = " p a r e n t " / & g t ; < b r / > < b r / > & l t ; B u t t o n < b r / > a n d r o i d : i d = " @ + i d / b t n _ g e t _ l o c a t i o n " < b r / > s t y l e = " @ s t y l e / b t n _ s t y l e " < b r / > a n d r o i d : l a y o u t _ w i d t h = " m a t c h _ p a r e n t " < b r / > a n d r o i d : l a y o u t _ h e i g h t = " 4 3 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n B o t t o m = " 8 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n E n d = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n L e f t = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n R i g h t = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n S t a r t = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n T o p = " 1 2 d p " < b r / > a n d r o i d : t e x t = " @ s t r i n g / g e t _ l o c a t i o n _ b t n _ s t r " < b r / > a p p : l a y o u t _ c o n s t r a i n t B o t t o m _ t o T o p O f = " @ + i d / t v _ l o n g " < b r / > a p p : l a y o u t _ c o n s t r a i n t E n d _ t o E n d O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t H o r i z o n t a l _ b i a s = " 0 . 0 " < b r / > a p p : l a y o u t _ c o n s t r a i n t S t a r t _ t o S t a r t O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t T o p _ t o B o t t o m O f = " @ + i d / a p p _ b a r _ n e w " / & g t ; < b r / > < b r / > & l t ; E d i t T e x t < b r / > a n d r o i d : i d = " @ + i d / e t _ n a m e _ o f _ a t t r " < b r / > s t y l e = " @ s t y l e / i n p u t _ f i e l d _ s t y l e " < b r / > a n d r o i d : l a y o u t _ w i d t h = " 0 d p " < b r / > a n d r o i d : l a y o u t _ h e i g h t = " 4 7 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n B o t t o m = " 7 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n E n d = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n L e f t = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n R i g h t = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n S t a r t = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n T o p = " 7 d p " < b r / > a n d r o i d : b a c k g r o u n d = " @ d r a w a b l e / i n p u t _ f i e l d _ d e s i g n " < b r / > a n d r o i d : e m s = " 1 0 " < b r / > a n d r o i d : h i n t = " @ s t r i n g / l o c _ n a m e " < b r / > a n d r o i d : i n p u t T y p e = " t e x t P e r s o n N a m e " < b r / > a p p : l a y o u t _ c o n s t r a i n t B o t t o m _ t o T o p O f = " @ + i d / e t _ d e s c r i p t i o n " < b r / > a p p : l a y o u t _ c o n s t r a i n t E n d _ t o E n d O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t H o r i z o n t a l _ b i a s = " 0 . 0 " < b r / > a p p : l a y o u t _ c o n s t r a i n t S t a r t _ t o S t a r t O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t T o p _ t o B o t t o m O f = " @ + i d / t v _ l o n g " / & g t ; < b r / > < b r / > & l t ; B u t t o n < b r / > a n d r o i d : i d = " @ + i d / b t n _ s a v e " < b r / > s t y l e = " @ s t y l e / b t n _ s t y l e " < b r / > a n d r o i d : l a y o u t _ w i d t h = " 9 0 d p " < b r / > a n d r o i d : l a y o u t _ h e i g h t = " 4 2 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n B o t t o m = " 2 5 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n E n d = " 8 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n L e f t = " 8 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n R i g h t = " 8 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n S t a r t = " 8 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n T o p = " 7 d p " < b r / > a n d r o i d : p a d d i n g = " 1 0 d p " < b r / > a n d r o i d : t e x t = " @ s t r i n g / b t n _ s a v e " < b r / > a p p : l a y o u t _ c o n s t r a i n t B o t t o m _ t o B o t t o m O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t E n d _ t o E n d O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t S t a r t _ t o S t a r t O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t T o p _ t o B o t t o m O f = " @ + i d / r g _ a c c e s s " / & g t ; < b r / > < b r / > & l t ; E d i t T e x t < b r / > a n d r o i d : i d = " @ + i d / e t _ c a m _ i m g _ t i t l e " < b r / > s t y l e = " @ s t y l e / i n p u t _ f i e l d _ s t y l e " < b r / > a n d r o i d : l a y o u t _ w i d t h = " 0 d p " < b r / > a n d r o i d : l a y o u t _ h e i g h t = " 4 7 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n B o t t o m = " 7 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n E n d = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n L e f t = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n R i g h t = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n S t a r t = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n T o p = " 7 d p " < b r / > a n d r o i d : e m s = " 1 0 " < b r / > a n d r o i d : h i n t = " @ s t r i n g / l o c _ i m g _ t i t l e " < b r / > a n d r o i d : i n p u t T y p e = " t e x t M u l t i L i n e " < b r / > a p p : l a y o u t _ c o n s t r a i n t B o t t o m _ t o T o p O f = " @ + i d / a d d i t i o n a l _ i m g s " < b r / > a p p : l a y o u t _ c o n s t r a i n t E n d _ t o E n d O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t H o r i z o n t a l _ b i a s = " 0 . 0 " < b r / > a p p : l a y o u t _ c o n s t r a i n t S t a r t _ t o S t a r t O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t T o p _ t o B o t t o m O f = " @ + i d / e t _ d e s c r i p t i o n " / & g t ; < b r / > < b r / > & l t ; E d i t T e x t < b r / > a n d r o i d : i d = " @ + i d / e t _ d e s c r i p t i o n " < b r / > s t y l e = " @ s t y l e / i n p u t _ f i e l d _ s t y l e " < b r / > a n d r o i d : l a y o u t _ w i d t h = " 0 d p " < b r / > a n d r o i d : l a y o u t _ h e i g h t = " 4 7 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n B o t t o m = " 7 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n E n d = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n L e f t = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n R i g h t = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n S t a r t = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n T o p = " 7 d p " < b r / > a n d r o i d : e m s = " 1 0 " < b r / > a n d r o i d : h i n t = " @ s t r i n g / l o c _ d e s c " < b r / > a n d r o i d : i n p u t T y p e = " t e x t M u l t i L i n e " < b r / > a p p : l a y o u t _ c o n s t r a i n t B o t t o m _ t o T o p O f = " @ + i d / e t _ c a m _ i m g _ t i t l e " < b r / > a p p : l a y o u t _ c o n s t r a i n t E n d _ t o E n d O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t H o r i z o n t a l _ b i a s = " 1 . 0 " < b r / > a p p : l a y o u t _ c o n s t r a i n t S t a r t _ t o S t a r t O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t T o p _ t o B o t t o m O f = " @ + i d / e t _ n a m e _ o f _ a t t r " / & g t ; < b r / > < b r / > & l t ; T e x t V i e w < b r / > a n d r o i d : i d = " @ + i d / t v _ l o n g " < b r / > a n d r o i d : l a y o u t _ w i d t h = " 1 7 0 d p " < b r / > a n d r o i d : l a y o u t _ h e i g h t = " 3 5 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n B o t t o m = " 8 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n T o p = " 8 d p " < b r / > a n d r o i d : b a c k g r o u n d = " @ d r a w a b l e / l o n g _ l a t _ b g " < b r / > a n d r o i d : e m s = " 1 0 " < b r / > a n d r o i d : i n p u t T y p e = " n u m b e r D e c i m a l " < b r / > a n d r o i d : p a d d i n g = " 5 d p " < b r / > a n d r o i d : t e x t = " @ s t r i n g / l o c _ l o n g " < b r / > a p p : l a y o u t _ c o n s t r a i n t B o t t o m _ t o T o p O f = " @ + i d / l o c a t i o n _ n a m e _ t e x t " < b r / > a p p : l a y o u t _ c o n s t r a i n t E n d _ t o S t a r t O f = " @ + i d / t v _ l a t " < b r / > a p p : l a y o u t _ c o n s t r a i n t S t a r t _ t o S t a r t O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t T o p _ t o B o t t o m O f = " @ + i d / b t n _ g e t _ l o c a t i o n " / & g t ; < b r / > < b r / > & l t ; T e x t V i e w < b r / > a n d r o i d : i d = " @ + i d / t v _ l a t " < b r / > a n d r o i d : l a y o u t _ w i d t h = " 1 7 0 d p " < b r / > a n d r o i d : l a y o u t _ h e i g h t = " 3 5 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n B o t t o m = " 8 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n T o p = " 8 d p " < b r / > a n d r o i d : b a c k g r o u n d = " @ d r a w a b l e / l o n g _ l a t _ b g " < b r / > a n d r o i d : e m s = " 1 0 " < b r / > a n d r o i d : i n p u t T y p e = " t e x t P e r s o n N a m e " < b r / > a n d r o i d : p a d d i n g = " 5 d p " < b r / > a n d r o i d : t e x t = " @ s t r i n g / l o c _ l a t " < b r / > a p p : l a y o u t _ c o n s t r a i n t B o t t o m _ t o T o p O f = " @ + i d / l o c a t i o n _ n a m e _ t e x t " < b r / > a p p : l a y o u t _ c o n s t r a i n t E n d _ t o E n d O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t S t a r t _ t o E n d O f = " @ + i d / t v _ l o n g " < b r / > a p p : l a y o u t _ c o n s t r a i n t T o p _ t o B o t t o m O f = " @ + i d / b t n _ g e t _ l o c a t i o n " / & g t ; < b r / > < b r / > & l t ; R e l a t i v e L a y o u t < b r / > a n d r o i d : i d = " @ + i d / a d d i t i o n a l _ i m g s " < b r / > s t y l e = " @ s t y l e / i n p u t _ f i e l d _ s t y l e " < b r / > a n d r o i d : l a y o u t _ w i d t h = " 0 d p " < b r / > a n d r o i d : l a y o u t _ h e i g h t = " 4 7 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n B o t t o m = " 7 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n E n d = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n L e f t = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n R i g h t = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n S t a r t = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n T o p = " 7 d p " < b r / > a n d r o i d : o r i e n t a t i o n = " h o r i z o n t a l " < b r / > a p p : l a y o u t _ c o n s t r a i n t B o t t o m _ t o T o p O f = " @ + i d / r e l a t i v e L a y o u t 2 " < b r / > a p p : l a y o u t _ c o n s t r a i n t E n d _ t o E n d O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t S t a r t _ t o S t a r t O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t T o p _ t o B o t t o m O f = " @ + i d / e t _ c a m _ i m g _ t i t l e " & g t ; < b r / > < b r / > & l t ; T e x t V i e w < b r / > a n d r o i d : i d = " @ + i d / t e x t V i e w 3 " < b r / > a n d r o i d : l a y o u t _ w i d t h = " w r a p _ c o n t e n t " < b r / > a n d r o i d : l a y o u t _ h e i g h t = " w r a p _ c o n t e n t " < b r / > a n d r o i d : l a y o u t _ a l i g n P a r e n t S t a r t = " t r u e " < b r / > a n d r o i d : l a y o u t _ c e n t e r V e r t i c a l = " t r u e " < b r / > a n d r o i d : l a y o u t _ m a r g i n S t a r t = " 1 3 d p " < b r / > a n d r o i d : l a y o u t _ w e i g h t = " 1 " < b r / > a n d r o i d : t e x t = " @ s t r i n g / l o c _ a d d i t i o n a l _ i m g s " < b r / > a n d r o i d : l a y o u t _ a l i g n P a r e n t L e f t = " t r u e " < b r / > a n d r o i d : l a y o u t _ m a r g i n L e f t = " 1 3 d p " / & g t ; < b r / > < b r / > & l t ; I m a g e V i e w < b r / > a n d r o i d : i d = " @ + i d / b t n _ a d d _ i m g s " < b r / > a n d r o i d : l a y o u t _ w i d t h = " w r a p _ c o n t e n t " < b r / > a n d r o i d : l a y o u t _ h e i g h t = " m a t c h _ p a r e n t " < b r / > a n d r o i d : l a y o u t _ a l i g n P a r e n t E n d = " t r u e " < b r / > a n d r o i d : l a y o u t _ a l i g n P a r e n t R i g h t = " t r u e " < b r / > a n d r o i d : s r c = " @ d r a w a b l e / i c _ a c t i o n _ a d d _ b l u e " / & g t ; < b r / > < b r / > & l t ; / R e l a t i v e L a y o u t & g t ; < b r / > < b r / > & l t ; R e l a t i v e L a y o u t < b r / > a n d r o i d : i d = " @ + i d / r e l a t i v e L a y o u t 2 " < b r / > s t y l e = " @ s t y l e / i n p u t _ f i e l d _ s t y l e " < b r / > a n d r o i d : l a y o u t _ w i d t h = " 0 d p " < b r / > a n d r o i d : l a y o u t _ h e i g h t = " 4 7 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n B o t t o m = " 7 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n E n d = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n L e f t = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n R i g h t = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n S t a r t = " 1 1 d p " < b r / > a n d r o i d : l a y o u t _ m a r g i n T o p = " 7 d p " < b r / > a n d r o i d : o r i e n t a t i o n = " h o r i z o n t a l " < b r / > a p p : l a y o u t _ c o n s t r a i n t B o t t o m _ t o T o p O f = " @ + i d / r g _ a c c e s s " < b r / > a p p : l a y o u t _ c o n s t r a i n t E n d _ t o E n d O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t S t a r t _ t o S t a r t O f = " p a r e n t " < b r / > a p p : l a y o u t _ c o n s t r a i n t T o p _ t o B o t t o m O f = " @ + i d / a d d i t i o n a l _ i m g s " & g t ; < b r / > < b r / > < b r / > & l t ; I m a g e V i e w < b r / > a n d r o i d : i d = " @ + i d / i c o n _ d r o p _ d o w n _ i m g " < b r / > a n d r o i d : l a y o u t _ w i d t h = " w r a p _ c o n t e n t " < b r / > a n d r o i d : l a y o u t _ h e i g h t = " m a t c h _ p a r e n t " < b r / > a n d r o i d : l a y o u t _ a l i g n P a r e n t E n d = " t r u e " < b r / > a n d r o i d : l a y o u t _ a l i g n P a r e n t R i g h t = " t r u e " < b r / > a n d r o i d : s r c = " @ d r a w a b l e / i c _ d r o p _ d o w n " / & g t ; < b r / > < b r / > & l t ; S p i n n e r < b r / > a n d r o i d : i d = " @ + i d / s p i n _ c l a s s i f i c a t i o n " < b r / > a n d r o i d : l a y o u t _ w i d t h = " m a t c h _ p a r e n t " < b r / > a n d r o i d : l a y o u t _ h e i g h t = " m a t c h _ p a r e n t " < b r / > a n d r o i d : b a c k g r o u n d = " @ a n d r o i d : c o l o r / t r a n s p a r e n t " / & g t ; < b r / > & l t ; / R e l a t i v e L a y o u t & g t ; < b r / > < b r / > < b r / > & l t ; T e xtView
android:textSize="16sp"
android:textColor="@color/blue"
android:id="@+id/tv_desc_access"
android:layout_width="wrap_content"
android:layout_height="32dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginBottom="7dp"
android:layout_marginEnd="8dp"
android:layout_marginLeft="11dp"
android:layout_marginRight="8dp"
android:layout_marginStart="11dp"
android:layout_marginTop="7dp"
android:text="@string/loc_acess"
app:layout_constraintBottom_toTopOf="@+id/btn_save"
app:layout_constraintEnd_toStartOf="@+id/rg_access"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/relativeLayout2" />
Также вот мой файл манифеста:
Но это не работает так, как задумано.
1) Нижняя панель навигации поднимается вместе с клавиатурой, как показано здесь: Снимок экрана
Я хочу, чтобы нижняя панель навигации оставалась внизу или исчезала при нажатии клавиатуры. активен.
Подробнее здесь:
https://stackoverflow.com/questions/523 ... h-keyboard