之前在布局中有很多问题也有很多经验,遗憾都没记下来。现在一点点记下一些东西。

1.外层用LinearLayout的话,常常把orientation设成vertical,

android:orientation="vertical"

同时,常常还要在LinearLayout里面加一句:

android:gravity="center_horizontal"

这两句配合的话才能使这个线性布局里面的控件实现垂直布局+水平居中。或者把第二句的center_horizontal改成center_vertical,就可以实现垂直居中。

需要注意的是,不要在这个线性布局里面的控件里(比如一个Button)加上面那句“android:gravity="center_horizontal"” ,因为android中布局里写的话常常是对子控件起作用的。

----------------------------

1.以前懂的,现在忘了,经过百度知道提问才回忆起来父容器的问题。“android:gravity="center_vertical" 只能使得文字在textview控件居中,并不能表示textview控件是居中的,这样在textview的父类布局器中再加上android:gravity="center_vertical"才行。”

 
2状态栏布局的时候遇到一个被压扁的图标,后来才发现原来是因为父容器用的方向是android:orientation="vertical"导致的。
 
3.在父容器android:orientation="horizontal"时,子容器android:gravity="right"失效,不能居右;解决办法是父控件用RelativeLayout,子控件android:layout_alignParentRight="true"。
 
 
http://zhidao.baidu.com/question/578763424.html?sort=6#answer-1454297761
 
--------14:20 08/05/2014-------
 
 
2.另外,学会了神奇的9.png。。left和top切割了拉伸区域,right和bottom切割了文字区域。具体戳这里
 
3.终于明白为什么他们的项目的drawable里有那么多xml文件,原来每一个不同风格的按钮的按下操作都是要单独覆写的。
而Button风格的覆写也很简单,不需要在styles.xml里定义,不需要引用style,而是直接用:
android:background="@drawable/login_btn"

这里login_btn是一个在drawable文件夹里定义的xml文件(注意这时候不能有相同名字的9.png文件,不然Console会报错说已经有这个drawable了),含有按下和没按下两种状态的背景:

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/login_btn_focused" />
<item android:state_focused="true"
android:drawable="@drawable/login_btn_focused" />
<item android:drawable="@drawable/login_btn_bg" />
</selector>
除此之外可能还有别的样式需要在drawable里定义。具体戳这里
 
-----------May.9,2014-------------
今天有了一些制作9.png的心得。
 
 
比如上面这个图,刚做的,想用来实现一个左侧带有图标一个button,如下图:
 
 
left边的两个小点用于上下定位,让这个图标处于拉伸之后的正中央;Top边有一个点和一条线(那个点在左边圆角处,不仔细看看不见),用来让图标处于拉伸后的左侧。right和bottom两侧的两条线代表文字内容区域。bottom的线如果往右侧移动一些,文字就会往右定位。
 
另外,这个png图像像素不能太「高」,不然即使button用wrap_content来定义,这个按钮还是会很高,I mean,按钮显得很大。
 
还有,怎么感觉还是怪怪的呢,是不是icon离文字太远了。。等会改一下。
还有,我觉得每个按钮都用这样9.png方法定义风格的话,工作量实在略大。。如实我觉得把图标去掉也不错。。是否还有其他方法呢。
 
 
-------2015.11.20-------
今天遇到一个小tip,linearlayout下 android:layout_gravity="right"是无效的。下面是摘抄来的:

当作为父layout的LinearLayout的属性为android:orientation="vertical" 的时候,android:layout_gravity="?"这里设为横向的时候才能生效。比如:left,right,center_horizontal等

当作为父layout的LinearLayout的属性为android:orientation="horizental" 的时候,android:layout_gravity="?"这里设为纵向的时候才能生效。比如:top,bottom,center_vertical等;

关于布局(Layout)的一切的更多相关文章

  1. Duilib源码分析(五)UI布局—Layout与各子控件

    接下来,继续分析duilib之UI布局Layout,目前提供的布局有:VerticalLayout.HorizontalLayout.TileLayout.TabLayout.ChildLayout分 ...

  2. jquery easy ui 1.3.4 布局layout(4)

    4.1.easyui布局-layout 在easyui里面只有一种布局方式,layout(东.南.西.北.中)的布局方式,创建layout布局的方式如下: <div id="cc&qu ...

  3. [转]struct实例字段的内存布局(Layout)和大小(Size)

    在C/C++中,struct类型中的成员的一旦声明,则实例中成员在内存中的布局(Layout)顺序就定下来了,即与成员声明的顺序相同,并且在默认情况下总是按照结构中占用空间最大的成员进行对齐(Alig ...

  4. Extjs布局——layout: 'card'

    先看下此布局的特性: 下面演示一个使用layout: 'card'布局的示例(从API copy过来的)——导航面板(注:导航面板切换下一个或上一个面板实际是导航面板的布局--layout调用指定的方 ...

  5. jQuery Easy UI (适应屏幕分辨率大小)布局(Layout)

    一.jQuery Easy UI (适应屏幕分辨率大小)布局(Layout) 1.首先应用的是jquery-easyui-1.4 版本(版本不同,兼容性不同) 2.实现整个页面的布局( layout: ...

  6. WPF笔记(2.7 文字布局)——Layout

    原文:WPF笔记(2.7 文字布局)--Layout 这一节介绍的是文字布局的几个控件:1.TextBlock      最基本的文字控件可以配置5个Font属性.TextWraping属性,&quo ...

  7. ExtJs常用布局--layout详解(含实例)

    序言: 笔者用的ExtJs版本:ext-3.2.0 ExtJs常见的布局方式有:border.form.absolute.column.accordion.table.fit.card.anchor ...

  8. sencha touch 入门系列 (九) sencha touch 布局layout

    布局用来描述你应用程序中组件的大小和位置,在sencha touch中,为我们提供了下面几种布局: 1.HBox: HBox及horizontal box布局,我们这里将其称为水平布局,下面是一段演示 ...

  9. 前端框架 EasyUI (2)页面布局 Layout

    在 Web 程序中,页面布局对应用程序的用户体验至关重要. 在一般的信息管理类的 Web 应用程序中,页面结构通常有一个主工作区,然后在工作区上下左右靠近边界的区域设置一些边栏,用于显示信息或放置一些 ...

  10. dojo布局(layout)

    使用BorderContainer和ContentPane实现布局 1.效果图如下: 2.HTML代码: <div id="appLayout" class="de ...

随机推荐

  1. ci框架——文章查看之上篇下篇

    1:从数据库查询出推荐的文章的信息,循环查出每篇推荐文章的id和title; foreach($data as $val){ $dataid[]=$val->aid; $datatitle[]= ...

  2. go--常量&运算符

    常量const 1.常量声明: const ( a = b c ) fmt.Println(a) fmt.Println(b) fmt.Println(c)// ======222 ====: 2.并 ...

  3. android控件-images

    1.imageButton 图片按钮 <ImageButton android:id="@+id/imageButton" android:layout_width=&quo ...

  4. nyoj_90_整数划分_201403161553

    整数划分 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 将正整数n表示成一系列正整数之和:n=n1+n2+…+nk, 其中n1≥n2≥…≥nk≥1,k≥1. 正整数 ...

  5. 第2章 CentOS网络配置

    一.配置说明 1.1 说明 1.本文以VM仅本机模式下与宿主机的网络配置为例. 1.2 达成目标 1.Windows能ping通centOS 2 centOS能够ping通Windows 3 cent ...

  6. java集合系列之HashMap源码

    java集合系列之HashMap源码 HashMap的源码可真不好消化!!! 首先简单介绍一下HashMap集合的特点.HashMap存放键值对,键值对封装在Node(代码如下,比较简单,不再介绍)节 ...

  7. android 拍照预览

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...

  8. 【转】DSP是什么--DSP是神马东东??

    原文:http://www.eepw.com.cn/article/272908.htm 导读:本文主要介绍的是DSP是什么,不懂得童鞋们快随小编一起学习一下DSP到底是个神马东东吧! 本文引用地址: ...

  9. win7下 安装 source code pro

    转: http://my.oschina.net/yearnfar/blog/325107 source code pro 字体安装, 一. 去 https://github.com/adobe-fo ...

  10. Linux温习(三)Linux文件和文件夹管理

    关于Linux文件夹的几个常见概念 路径 对文件位置信息的描写叙述机制.是指从树型文件夹中的某个文件夹层次到其内某个文件的一条通路.分为相对路径和绝对路径: 工作文件夹 登入系统后.用户始终处于某个文 ...