android ui 遇到的问题汇总

1. 在 linearlayout 中如何让 textview 靠 left or right

首先,通过 weight = 1 让两个 textview 各占一半,
然后,通过 android:gravity 设置 textview 的内容,靠左还是右


2. layout_gravity 和 gravity 的区别

layout_gravity 设置的是 layout
gravity 设置的是内容,
margin 是 layout
padding 是内容
有时候我们设置了一个 view 是 android:gravity=center 但是不在中间,可能是因为同时指定了 padding 的值


3. merge

只能用作根 root,并且没有 layout 的概念,例如:有个子的 layout 文件: sub.xml

方式1:
<merge>
  <TextView />
</merge>
方式2:
<LinearLayout>  
    <TextView />
</LinearLayout>

在另一个 xml 中通过 include 的方式使用

<include android:id="@+id/main" layout="@layout/sub"> 

则方式一通过 findViewById() 会崩溃,方式2 不会。

方式1 通过如下方式可以解决
<FrameLayout android:id="@+id/main"
    <include layout="@layout/sub" />
</FrameLayout>


4. list item 设置 margin 不起作用

如果一个 view 用来作为 list item 的 root view,然后想设置它的 margin 则不起作用,需要在内嵌一个 layout 才可以
<LineartLayout android:margin="10dip" />  // 不起作用没有任何 margin 的效果

<LinearLayout>
  <LinearLayout android:margin="10dip" />  // 有 margin 的效果
</LinearLayout>


5. 通过 Framelayout 来实现一个 view 覆盖在另一个 view 上面

此处要注意的是:最上面的 view 最后创建,否则即使设置了 top 也会被覆盖掉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值