android布局重疊
Ⅰ Android中的五種布局方式
分別是:FrameLayout(框架布局),LinearLayout (線性布局),AbsoluteLayout(絕對布局),RelativeLayout(相對布局),TableLayout(表格布局)。
一、FrameLayout:所有東西依次都放在左上角,會重疊,這個布局比較簡單,也只能放一點比較簡單的東西。二、LinearLayout:線性布局,每一個LinearLayout裡面又可分為垂直布局(android:orientation="vertical")和水平布局(android:orientation="horizontal" )。當垂直布局時,每一行就只有一個元素,多個元素依次垂直往下;水平布局時,只有一行,每一個元素依次向右排列。三、AbsoluteLayout:絕對布局用X,Y坐標來指定元素的位置,這種布局方式也比較簡單,但是在屏幕旋轉時,往往會出問題,而且多個元素的時候,計算比較麻煩。四、RelativeLayout:相對布局可以理解為某一個元素為參照物,來定位的布局方式。主要屬性有:相對於某一個元素android:layout_below、 android:layout_toLeftOf相對於父元素的地方android:layout_alignParentLeft、android:layout_alignParentRigh;五、TableLayout:表格布局,每一個TableLayout裡面有表格行TableRow,TableRow裡面可以具體定義每一個元素。每一個布局都有自己適合的方式,這五個布局元素可以相互嵌套應用,做出美觀的界面。
Ⅱ Android 布局之FrameLayout
1 .FrameLayout簡介
設計FrameLayout是為了顯示單一項widget。通常,不建議使用FrameLayout顯示多項內容;因為它們的布局很難調節。不用layout_gravity屬性的話,多項內容會重疊;使用layout_gravity的話,能設置不同的位置。layout_gravity可以使用如下取值:
top :將對象放在其容器的頂部,不改變其大小.
bottom:將對象放在其容器的底部,不改變其大小.
left:將對象放在其容器的左側,不改變其大小.
right:將對象放在其容器的右側,不改變其大小.
center_vertical:將對象縱仔凳向居中,不改變其大小.
垂直對齊方式:垂直方向上居中對齊。
fill_vertical:必要的時候增加對象的縱向大小,以完全充滿其容器.
垂直方向填充
center_horizontal:將對象橫向居中,不改變其大小.
水平對齊方式:水平方向上居中對齊
fill_horizontal:必要的時候增加對象的橫向大小,以完全充滿其容器.
水平方向填充:center
將對象橫縱居中,不改變其大小.
fill:必要的時候增加對象的橫縱向大小,以完全充滿其容器.
clip_vertical:附加選項,用於按照容器的邊來剪切對象的頂部和/或底部的內容. 剪切基於其縱向對齊設置:頂部對齊時,剪切底部;底部對齊時剪切頂部;除此之外剪切頂部和底部.
垂直方向裁剪
clip_horizontal
附加選項,用於按照容器的邊來剪切對象的左側和/或右側的內容. 剪切基於其橫向對齊設置:敏純左側對齊時,剪切右側;右側對齊時剪切左側;除此之外剪切左側和右側.
水平方向裁剪
注意: 區分「android:gravity」和「android:layout_gravity」。
android:gravity :是對控制項本身來說的,是用來設置「控制項自身的內容」應該顯示在「控制項自身體積」的什麼位置,默認值是左側。
android:layout_gravity :是相對於控制項的父元素來說的,設置該控制項在它的父元素的什麼位置
2. FrameLayout示例
創建橋戚咐一個activity,包含2組FrameLayout:1組設置android:layout_gravity屬性,另1組不設置android:layout_gravity屬性。
layout文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- 示例1 FrameLayout內容重疊 -->
<TextView
android:text="示例1, FrameLayout內容重疊"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<FrameLayout
android:layout_width="300dp"
android:layout_height="80dp" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我是TextView,內容比較長"
android:background="#ff0000"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffff00"
android:text="我是按鈕"/>
</FrameLayout>
<!-- 示例2 FrameLayout使用layout_gravity屬性 -->
<TextView
android:text="示例2, 設置layout_gravity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<FrameLayout
android:layout_width="300dp"
android:layout_height="120dp" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="文本居左"
android:background="#ff0000"
android:gravity="center"
android:layout_gravity="left"
android:layout_margin="10dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="文本居中"
android:background="#ffff00"
android:gravity="center"
android:layout_gravity="center"/>
</FrameLayout>
</LinearLayout>
Ⅲ 在android開發中為什麼我的所有控制項都跑到屏幕的左上角重疊著
你用的是相羨核對布局,然後每個控制項之間兄游掘並沒有定義他們的相對位置關系,所以他們都重疊在一起。可以設置below ,above等等屬性,磨虧來確定相對位置
Ⅳ 如何讓安卓的控制項重疊在一起
相對布局,兩個組件放到一個相對布局中,然後布局自適應大小,關閉放在父類布局的右上角
Ⅳ android(TextView)控制項重疊問題
首先不太明絕晌世白你的問題啊
你到底想讓textView裡面的並肢內容水平居中,還是讓textView控制項在它的父布局裡水平居中呢?
1. 讓textView裡面的內容謹配水平居中 : android:gravity="center_horizontal"
2. 讓textView控制項在它的父布局裡水平居中 android:layout_gravity="center_horizontal"
Ⅵ android relativelayout 上下布局重疊為什麼下層的控制項會響應
http://blog.csdn.net/morgan_xww/article/details/9372285
Android TouchEvent事件傳遞機制
重疊了,,但是都是一個父容器,,他都傳遞給上面的了,肯定也傳遞給下面的了啊 ,,不能厚此薄彼啊!
你能夠接收到事件 說明父容納埋器沒對事件進行攔截,然後這個事件也沒有被消耗掉
你不想下面的控制項處理這個事盯叢件
你要麼在父容器攔截掉(這樣這個父容器所有子控制項都接收不到觸摸事件了)
要麼你就不要給他設置監聽
要麼你就把他設置為gone或者disable狀態
要麼你復寫你的子控制項觸摸事件洞則螞,,不要處理,直接返回false
推薦使用設置為disable狀態 view.setEnabled(false) 在需要響應的時候設置為true!
Ⅶ android relativelayout 上下布局重疊為什麼下層的控制項會響應
因為攔截方法返回true。
Ⅷ 用eclipse開發android時兩個文本組件總是重疊的,怎麼解決
eclipse開發android時兩個文本組件總是重疊的原因是因為組件的布局重疊在一起。
解決的方式如下:
查看兩個文本的寬度和高度,是否有重疊的部分,設置成固定的高度。
使用相對布局,使兩個文本處於相對的位置,這樣就不會重孝姿疊。
android中布局一般使用線性布局和相對布局,想要適配多種手機,建議多使用相譽慎仔對布局,會系統適配慶汪手機尺寸。
Ⅸ Android屏幕變化引起Fragment折疊的解決辦法
奇葩問題年年有,今天又碰到一個,最近呢,在項目開發維護中遇到這樣一個bug,vivo某某型號手機,三指頭同時下滑,瞅瞅效果圖,屏幕露出半個桌面來,而我們的應用布局發生重疊,不得不佩服我們的測試小姐姐,這樣奇葩問題,你都找得到,怎麼辦呢,網路谷歌唄!
這樣子,在當前頁面的Activity中的onCreate方法中輸出日誌,當頁面首次打開的時候有日誌輸出,當三個手指下滑的時候,又有日誌輸出,ok,到這里問題已經明朗,Activity重新創建了,顯然因為生命周期方法重復執行導致它承載的Fragment出現了布局折疊問題。
當手機屏幕變化笑銀培,比如橫豎屏切換,布局變化,屏幕尺寸改變等,在不經過設搏仿置時activity會被重新啟動創建,而且還不止一次,而要防止這碰唯個現象的發生,就需要配置configChanges這個屬性了。
找到了原因,那麼開始實施解決方案。
在AndroidManifest.xml中配置configChanges這個屬性如下
當配置完成後,再次發布程序到手機,日誌不在重復列印,頁面也能夠正常顯示。
這樣配置
android:configChanges="orientation"
那麼橫豎屏切換時就不會重新創建activity,那麼這個屬性到底是什麼意思呢?
首先,要了解Android默認在情況下,在系統的配置改變的情況下會重新創建activity,這個很好理解,因為系統環境變了,當然要重新創建activity來適應這個改變嘍。但是在很多時候我們不想在系統配置改變時重新載入activity,那麼就需要
android:configChanges=「xxx|xxx」這個樣子來搞定了。這里的xxx表這不同的系統配置的改變。
這里的xxx包含了很多種,就像我上邊寫的,可以用|來連接多個值。下面簡單介紹下各個值的不同含義:
喝飽水,閉上嘴,往前走,靠雙腿。