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 也会被覆盖掉

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章