Android学习笔记(十):Activity-TableLayout和ScrollView
来源:互联网 发布:js表单 focus怎么用 编辑:程序博客网 时间:2024/06/05 08:31
TableLayout
在某些UI设计中,也称为GridLayout。我们根据行和列的排列来对widget进行布局。整个逻辑和我们在HTML中写table的方式相似,定义表格然后以行为单位,然后在定制单元表格,即每一个widget,如果widget需占用多个单元采用android:layout_span="num"的方式。
第一个表格单元为(0,0)。widget是按顺序放入表格的,如果我们希望中间跳过几个表格单元,可以指定widget具体在哪一列,例如android:layout_column="2",即放在第3列,那么下一个widget将是第4列或者下一行。需要注意的是,和Table一样,这些表格的大小并不一定是一样的,将根据widget的natrual大小。这可能和我们的期望不一样。下面是一个例子:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
<!-- android:stretchColumns的值为一个column的列号,注意列号是从0还是,如果有多个列号,用逗号作为分割。这些列将尽可能填满剩余的空间,这对于小于有效空间的情况非常有用。如果不设置,则采用widget的natrual的大小,将不会填满横排剩余的空间。在程序中可以是setColumnStretchable()—>
android:stretchColumns="1" >
<TableRow>
<TextView android:text="URL:" />
<!--如果我们不设置 android:stretchColumns="1",EditText这里是没有内容,因此它的natrual的width为0,即看不到。当我们设置row 1的两个button填入 column2和3,那么column 2和3将为适配为button的大小,而column1为1,这会导致如图所示的画面 -->
<EditText android:id="@+id/entry"
android:layout_span="3" />
</TableRow>
<TableRow>
<Button android:id="@+id/cancel"
android:layout_column="2"
android:text="Cancel" />
<Button android:id="@+id/ok"
android:text="Ok" />
</TableRow>
</TableLayout>
android:stretchColumns:如同将上面例子。
android:shrinkColumns,将尽可能压缩column空间,例如在上面的例子在Row0中我们加入:
<TextView android:text="1234567899" />
<TextView android:text="hello my friend!" android:textColor="#0000ff" />
<TextView android:text="1234567899" />
运行时如上左图,最后一列看不到完整,我们可以在TableLayout中加入属性:android:shrinkColumns="4,5",这样就可以如第二个图。在java code中可以使用setColumnShrinkable()。
android:collapseColumns:可以将某些列invisible,可用于向用户显示他们需要的或者重要的内容,而隐藏次要的,在java code中可以使用setColumnCollapsed()。我们将android:collapseColumns="4,5"替换了shrinkColumns的属性,效果如右图。
在TableRow之间可以放入widget,这时TableLayout就如同数值排放的LinearLayout的行为,并自动的将width设置为fill_parent。
ScrollView
顾名思义就是可以滚屏。ScrollView的处理很简单:
<ScrollView xmlns:android... android:layout_width... android:layout_height...>
//里面可以是其他Layout的布局,例如TableLayout,但是我们尝试了在一个ScrollView中又两个TableLayout出现错误,目前不太清楚为什么。
</ScrollView>
需要注意的是ScrollView不提供双向(横+竖)的scroll,只提供单向的。
- Android学习笔记(十):Activity-TableLayout和ScrollView
- Android学习笔记(十):Activity-TableLayout和ScrollView
- Android学习笔记(十):Activity-TableLayout和ScrollView
- Activity-TableLayout和ScrollView
- android学习笔记02(TableLayout)
- android学习笔记9:TableLayout
- Android 学习笔记(5) --tablelayout
- Android学习笔记TableLayout布局
- Pro Android学习笔记(二五):用户界面和控制(13):LinearLayout和TableLayout
- 学习android笔记(5) 动态建立TableLayout 表格布局
- Android学习笔记08:表格布局TableLayout
- Android表格布局TableLayout学习笔记
- Android学习笔记(12):表格布局TableLayout
- Android学习 (九) 布局之TableLayout和 FrameLayout
- android 学习笔记(十)
- Android学习笔记(十)
- Android学习笔记:利用Tablelayout和viewpager实现防qq底部栏切换
- [android]笔记5-TableLayout
- Servlet&JSP的那些事儿(一)
- Apache 下通过 .htaccess 文件实现伪静态连接
- Android学习笔记(九):Activity-RelativeLayout
- Vim(gvim)编程字体推荐
- CentOS RedHat启动过程详解
- Android学习笔记(十):Activity-TableLayout和ScrollView
- Java学习第一篇--包的引用
- Observer模式
- jamendo_android 一个开源的Android在线音乐播放器实例
- Android学习笔记(十一):Activity-ListView
- 11月14号release的Swift 1.7.5介绍
- Filter及FilterChain的使用详解
- Android学习笔记(十二):Activity-Spinner
- Debug与Release