• 关于布局(Layout)的一切


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

    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等;

  • 相关阅读:
    利用Redis和Flask维护一个通用爬虫代理池
    在scrapy_splash中加载本地Cookies
    Splash对接Scrapy
    Selenium和pymongo的简单复习
    Scrapy框架
    web.xml is missing and <failOnMissingWebXml> is set to true
    深入Mybatis配置文件
    SSH和SSM的比较
    classpath路径指什么
    数据库范式
  • 原文地址:https://www.cnblogs.com/larrylawrence/p/3406215.html
Copyright © 2020-2023  润新知