Android布局之TableLayout-TableRow布局

 更新时间:2016年9月20日 19:59  点击:2431
本文章来给各位同学详细介绍关于Android布局之TableLayout-TableRow布局,各位同学有需要可进入参考。
 代码如下 复制代码

<?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">
 
 <TableRow>
 <TextView
 android:text="column1"
 android:padding="3dip" />
 <TextView
 android:text="column2"
 android:padding="3dip" />
 <TextView
 android:text="column3"
 android:padding="3dip" />
 </TableRow>
 
 <TableRow>
 <TextView
 android:text="column11"
 android:visibility="invisible"/> //cell不见了
 <TextView
 android:text="左边的invisible"
 android:gravity="right"
 android:padding="3dip" />
 <Button
 android:id="@+id/go"
 android:text="go"
 android:padding="3dip" />
 <Button
 android:text="cancel"
 android:padding="3dip" />
 </TableRow>
 
 <View //间隔线
 android:layout_height="2dip"
 android:background="#F00" />
 
 <TableRow>
 <TextView
 android:text="右边的cell empty" />
 <TextView
 android:layout_column="2"
 android:text="跳开empty cell"
 android:padding="3dip" />
 </TableRow>
 
 <TableRow>
 <TextView
 android:text="合并3个单元格"
 android:layout_span="3"
 android:gravity="center_horizontal"
 android:background="#FFC0C0C0"
 android:textColor="#f00"
 android:padding="3dip" />
 </TableRow>
</TableLayout>

TableLayout跟TableRow是一组搭配使用的布局,TableLayout置底,TableRow在TableLayout的上面,而Button、TextView等控件就在TableRow之上,另外,TableLayout之上也可以单独放控件。TableLayout是一个使用复杂的布局,最简单的用法就仅仅是拖拉控件做出个界面,但实际上,会经常在代码里使用TableLayout,例如做出表格的效果。本文主要介绍TableLayout的基本使用方法。

TableLayout经常用的属性是:

android:collapseColumns:以第0行为序,隐藏指定的列:

android:collapseColumns该属性为空时,如下图:

0

把android:collapseColumns=0,2————–》意思是把第0和第2列去掉,如下图:

1

android:shrinkColumns:以第0行为序,自动延伸指定的列填充可用部分:

当LayoutRow里面的控件还没有布满布局时,shrinkColumns不起作用,如下图:

2.1

设置了shrinkColumns=0,1,2,布局完全没有改变,因为LayoutRow里面还剩足够的空间。

当LayoutRow布满控件时,如下图:

2

设置设置了shrinkColumns=2,则结果如下图,控件自动向垂直方向填充空间:

3

android:stretchColumns:以第0行为序,尽量把指定的列填充空白部分:

4

设置stretchColumns=1,则结果如下图,第1列被尽量填充(Button02与TextView02同时向右填充,直到TextView03被压挤到最后边)。

5

Android的TableLayout + TableRow虽然使用有点复杂,但是功能很强大。。。。。。Android提供了很多布局属性,但是手机程序的界面没有PC那么花俏,所以常用的就那几项而已。。。

文章主要是介绍关于PC电脑和Android模拟器访问及模拟器之间tcp/udp通信,各位有需要了解同学可进入参考。
Android系统默认只能通过IP(10.0.2.2)单向访问PC电脑,而PC电脑不能通过IP来直接访问Android模拟器系统。要想实现PC电脑和Android模拟器系统以及Android模拟器之间相互通信必须借助端口重定向(redir)来实现。
先说说端口重定向所需要的telnet客户端安装:
windows:
安装telnet客户端。如果没有安装,可以在windows程序管理中的打开或关闭系统功能下找到telnet客户端菜单项来启用telnet客户端功能。
linux:
自行安装telnet客户端。
一、PC电脑不能直接访问Android模拟器系统的原因
Android系统为实现通信将PC电脑IP设置为10.0.2.2,自身为10.0.2.15/127.0.0.1。然而PC电脑并没有为Android模拟器系统指定IP,所以PC只能通过端口重定向来实现和Android模拟器的通信。
二、PC电脑和Android模拟器系统之间通信
1、运行模拟器
2、打开window 命令行,执行:
telnet localhost 5554
5554是模拟器的端口(位于Android模拟器窗口标题栏),执行之后会进入android console
3、在console下执行:
格式:redir add < udp/tcp >:< pc端口 >:< 模拟器端口 >
例如:redir add udp:2888:2888 
     redir add tcp:2888:2888
执行此命令之后,会把PC 2888 端口接收到的tcp/udp数据转到模拟器的2888端口。
三、多个Android模拟器系统之间通信
1、启动模拟器emulator-5554和emulator-5556
2、打开dos窗口执行telnet localhost 5554连接到模拟器5554
3、成功连接后,继续执行:redir add tcp:5000:6000将PC端口5000绑定到模拟器5554的端口6000上。
4、此时模拟器5556通过向PC电脑端口5000(即地址:10.0.2.2:5000)发送tcp/udp数据包跟模拟器5554通信。
5、同理根据步骤2、3来实现PC电脑对模拟器5556的端口转发。
添加成功后,我们可以用redir list命令来列出已经添加的映射端口,redir del可以进行删除。
相信只要理解了PC电脑和Android模拟器系统之间通信,便知道怎么实现多个模拟器之间通信。
 
  • TCP通信
进行TCP通信的时候在本机上启动两个模拟器,本机(PC)和模拟器时发现两个模拟器的IP地址都是完全一样的,所以要实现两个模拟器之间的通信,使用模拟器的IP地址是办不到的。必须进行端口映射。
    模拟器提供了一个特殊的IP,此IP的地址为10.0.2.2,此IP地址可以说等同于PC本机的IP地址127.0.0.1 。所以,通过此特殊IP地址,实现PC本机与模拟器的通信是没有问题。
首先 ,运行模拟器在命令行adb –s emulator -模拟器  forward  tcp:端口号 tcp:端口号(例如:adb –s emulator-5554 forward tcp:8080 tcp:8090)
PC-SERVER:ServerSocket server = new ServerSocket(8080);
模拟器-CLIENT:Socket socket = new Socket("10.0.2.2", 8090);
接下来是如何在两个模拟器之间进行通信:同样的先进行端口映射:adb –s emulator -模拟器  forward  tcp:端口号 tcp:端口号(先运行模拟器).代码如下:
adb –s emulator-5554 forward tcp:8080 tcp:8081
模拟器(5554)-SERVER:ServerSocket server = new ServerSocket(8080);
模拟器(5556)-CLIENT:Socket socket = new Socket("10.0.2.2", 8081);
因为模拟器5556连接的地址10.0.2.2:8080相当于本机的127.0.0.1:8080,由于进行了端口映射本机IP8080上的连接请求都映射到5554:8081上,因此模拟器5556的请求会发送到5554上.
wifi上网 几乎是不需要什么设置了,我们只要简单的输入wifi密码与用户名就可以自动连接wifi上网了,下面我以安卓4.1系统为实例

具体步骤

1.在安卓手机中点击“系统设置”有的手机是“设置”点击进入

安卓手机怎么设置用wifi上网

2.在手机的设置中我们会看到有如“wifi设置”选项 如下图:

安卓手机怎么设置用wifi上网

3.进入wifi设置以后,打开WLAN选项,此时它会自动进行搜索周围的wifi信号,

安卓手机怎么设置用wifi上网

4.一般的wifi都是需要密码的,没关系,如果你在肯德基、麦当劳、咖啡馆等这样的公共领域问问服务员就可以了,在公司的话就问问同事呗,输入密码连接即可。

安卓手机怎么设置用wifi上网

小提示

如果此方法设置之后你手机无法上网那可能是你的wifi密码与用户名错误了,或是的IP与网络其它IP冲突了。

A789使用过程中,一般有两种途径满足上网的需求,一是通过手机卡上网,一是通过周边存在的无线网络上网。不论上网的速度、还是从需求的费用看,通过无线网络上网都具有绝对的优势。A789如何设置无线网络上网可参考以下操作:

1、 点击主页面中下方“六个点”图标进入程序菜单
 
2、 点击“系统设置”进入设置菜单,将“WLAN”右侧的开关键向右滑动,变成蓝色“打开”状态
   
3、 点击“WLAN”选项看到周围可用WLAN列表
  
4、 点击相应的无线网络即可连接,扇形图标表示该无线网络的信号强度,无锁头图标可直接连接。如带有锁头,点击相应的无线网络后,还需输入密码才能连接。
 

使用电信定制手机如A765e、A600e、A560e等的时候,可能会发现手机的日期和时间没法自己设置。这主要是因为手机使用电信卡时,会自动与电信基站进行交互并自动调节日期与时间。所以不论使用电信定制的单模或双模手机

(单模是指手机只有一个卡槽,且只能使用电信卡。双模指手机有两卡槽,可同时使用一张电信卡和一张移动或联通的2G卡,电信卡为主卡),只要使用了电信卡,日期与时间都是自动调节的,无需手动进行调节。这里以电信定制的双模手机A765e为例进行说明:
    
    
但如果双模手机只使用移动或者联通的2G卡,那么除A600e之外的双模手机都可将“自动确定日期和时间”选项后的勾选去掉,然后可手动在“设置日期”和“设置时间”两个选项中分别进行。
    
     
     

[!--infotagslink--]

相关文章

  • Bootstrap Table使用整理(二)

    这篇文章主要介绍了Bootstrap Table使用整理(二)的相关资料,需要的朋友可以参考下...2017-06-15
  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • Antd-vue Table组件添加Click事件,实现点击某行数据教程

    这篇文章主要介绍了Antd-vue Table组件添加Click事件,实现点击某行数据教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-17
  • vuejs element table 表格添加行,修改,单独删除行,批量删除行操作

    这篇文章主要介绍了vuejs element table 表格添加行,修改,单独删除行,批量删除行操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-18
  • C#窗体布局方式详解

    这篇文章主要介绍了C#窗体布局方式详解的相关资料,需要的朋友可以参考下...2020-06-25
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • Android模拟器上模拟来电和短信配置

    如果我们的项目需要做来电及短信的功能,那么我们就得在Android模拟器开发这些功能,本来就来告诉我们如何在Android模拟器上模拟来电及来短信的功能。 在Android模拟...2016-09-20
  • Ant design vue table 单击行选中 勾选checkbox教程

    这篇文章主要介绍了Ant design vue table 单击行选中 勾选checkbox教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-25
  • 夜神android模拟器设置代理的方法

    夜神android模拟器如何设置代理呢?对于这个问题其实操作起来是非常的简单,下面小编来为各位详细介绍夜神android模拟器设置代理的方法,希望例子能够帮助到各位。 app...2016-09-20
  • android自定义动态设置Button样式【很常用】

    为了增强android应用的用户体验,我们可以在一些Button按钮上自定义动态的设置一些样式,比如交互时改变字体、颜色、背景图等。 今天来看一个通过重写Button来动态实...2016-09-20
  • Android WebView加载html5页面实例教程

    如果我们要在Android应用APP中加载html5页面,我们可以使用WebView,本文我们分享两个WebView加载html5页面实例应用。 实例一:WebView加载html5实现炫酷引导页面大多...2016-09-20
  • 深入理解Android中View和ViewGroup

    深入理解Android中View和ViewGroup从组成架构上看,似乎ViewGroup在View之上,View需要继承ViewGroup,但实际上不是这样的。View是基类,ViewGroup是它的子类。本教程我们深...2016-09-20
  • 解决Antd Table表头加Icon和气泡提示的坑

    这篇文章主要介绍了解决Antd Table表头加Icon和气泡提示的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-17
  • Android自定义WebView网络视频播放控件例子

    下面我们来看一篇关于Android自定义WebView网络视频播放控件开发例子,这个文章写得非常的不错下面给各位共享一下吧。 因为业务需要,以下代码均以Youtube网站在线视...2016-10-02
  • Android用MemoryFile文件类读写进行性能优化

    java开发的Android应用,性能一直是一个大问题,,或许是Java语言本身比较消耗内存。本文我们来谈谈Android 性能优化之MemoryFile文件读写。 Android匿名共享内存对外A...2016-09-20
  • Android设置TextView竖着显示实例

    TextView默认是横着显示了,今天我们一起来看看Android设置TextView竖着显示如何来实现吧,今天我们就一起来看看操作细节,具体的如下所示。 在开发Android程序的时候,...2016-10-02
  • android.os.BinderProxy cannot be cast to com解决办法

    本文章来给大家介绍关于android.os.BinderProxy cannot be cast to com解决办法,希望此文章对各位有帮助呀。 Android在绑定服务的时候出现java.lang.ClassCastExc...2016-09-20
  • Android 实现钉钉自动打卡功能

    这篇文章主要介绍了Android 实现钉钉自动打卡功能的步骤,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下...2021-03-15
  • Android 开发之布局细节对比:RTL模式

    下面我们来看一篇关于Android 开发之布局细节对比:RTL模式 ,希望这篇文章对各位同学会带来帮助,具体的细节如下介绍。 前言 讲真,好久没写博客了,2016都过了一半了,赶紧...2016-10-02
  • el-table树形表格表单验证(列表生成序号)

    这篇文章主要介绍了el-table树形表格表单验证(列表生成序号),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-01