zoukankan      html  css  js  c++  java
  • 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

    引用地址:

  • 相关阅读:
    Webstorm 下的Angular2.0开发之路
    利用hexo+github+nodejs搭建自我博客的一天
    滑稽的下午angularjs 2.0管道的使用
    DNGuard 标准版 v2.90发布
    DNGuard Enterprise v2.92 released
    C#复杂表达式的问题
    直接在.Net程序(C#)中执行 native code
    采用Native 引导方式的.Net加密保护
    DNGuard HVM Trial V2.82 发布
    DNGuard Enterprise v2.90 released
  • 原文地址:https://www.cnblogs.com/freenovo/p/4469771.html
Copyright © 2011-2022 走看看