Android动态改变布局

下面这篇文章是我在csdn上看到的,有所启发,主要是下面提到的当软件盘弹出时将原本上下排列的布局改成左右排列这种交互设计比较好,另外在java代码中添加RelativeLayout的布局规则也值得学习,原文如下:

遇到这么个需求,先看图:

---

其实是一个软件的登录界面,初始是第一个图的样子,当软键盘弹出后变为第二个图的样子,因为登录界面有用户名、密码、登录按钮,不这样的话软键盘弹出后会遮住登录按钮(其实之前的实现放到了ScrollView里面,监听软键盘弹出后滚动到底部,软键盘隐藏后滚动到顶部,也是可以的)。

最简单的方法就是多加几个冗余的View,根据软键盘的状态隐藏不需要的View,显示需要的View,但这样感觉太挫了,然后就想起了前两年研究的RelativeLayout布局,RelativeLayout中子控件的布局都是相对位置,只需要在软键盘弹出隐藏时改变应用的位置规则就行了。

先来看一下布局文件

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

de ><RelativeLayoutxmlns:android=de>de >"http://schemas.android.com/apk/res/android"de>

de >    de>de >xmlns:tools=de>de >"http://schemas.android.com/tools"de>

de >    de>de >android:id=de>de >"@+id/root"de>

de >    de>de >android:layout_width=de>de >"match_parent"de>

de >    de>de >android:layout_height=de>de >"match_parent"de>

de >    de>de >android:padding=de>de >"20dp"de>

de >    de>de >tools:context=de>de >"${packageName}.${activityClass}"de> de >>de>

de >    de>de ><RelativeLayoutde>

de >        de>de >android:id=de>de >"@+id/container"de>

de >        de>de >android:layout_width=de>de >"match_parent"de>

de >        de>de >android:layout_height=de>de >"wrap_content"de>

de >  &nbs de>

Tag:

Freenovo 发表于2014-10-07 09:49:00 | 编辑 | 分享 0

引用地址:

原文地址:https://www.cnblogs.com/freenovo/p/4469771.html