android重疊布局
A. android relativelayout 上下布局重疊為什麼下層的控制項會響應
http://blog.csdn.net/morgan_xww/article/details/9372285
Android TouchEvent事件傳遞機制
重疊了,,但是都是一個父容器,,他都傳遞給上面的了,肯定也傳遞給下面的了啊 ,,不能厚此薄彼啊!
你能夠接收到事件 說明父容納埋器沒對事件進行攔截,然後這個事件也沒有被消耗掉
你不想下面的控制項處理這個事盯叢件
你要麼在父容器攔截掉(這樣這個父容器所有子控制項都接收不到觸摸事件了)
要麼你就不要給他設置監聽
要麼你就把他設置為gone或者disable狀態
要麼你復寫你的子控制項觸摸事件洞則螞,,不要處理,直接返回false
推薦使用設置為disable狀態 view.setEnabled(false) 在需要響應的時候設置為true!
B. 【Android】UI(二)Android常用的基礎布局容器
Android 的UI 可以分為兩類,一類叫做ViewGroup容器,一類叫做View視圖
View視圖:(TextView,Button,ImageView)都是常用常見的視圖.
ViewGroup容器:內部可以承載、放置、添加View視圖
線性布局就是 從左到右 或 從上到下 按 順序排列 的一種布局。下面講一講LinearLayout的基礎屬性。
相對布局在擺放子視圖位置時,按照 指定的參考系 來擺放子視圖的位置, 默認以屏幕左上角(0,0)位置 作為 參考系 擺放位置
使用layout_below使得後面一個組件位於前面一個組件的下方
配合layout_toRightOf使得後面一個組件位於前面一個組件的右方
組件的默認位置都是左上角,組件之間可以重疊。像千層餅一樣,一層壓著一層 可以設置上下左右的對齊、水平垂直居中、設置方式與線性布局相似
參考: 2021Android從零入門到實戰(Kotlin版)
C. android relativelayout 上下布局重疊為什麼下層的控制項會響應
因為攔截方法返回true。
D. 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裡面可以具體定義每一個元素。每一個布局都有自己適合的方式,這五個布局元素可以相互嵌套應用,做出美觀的界面。
E. 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>
F. 用eclipse開發android時兩個文本組件總是重疊的,怎麼解決
eclipse開發android時兩個文本組件總是重疊的原因是因為組件的布局重疊在一起。
解決的方式如下:
查看兩個文本的寬度和高度,是否有重疊的部分,設置成固定的高度。
使用相對布局,使兩個文本處於相對的位置,這樣就不會重孝姿疊。
android中布局一般使用線性布局和相對布局,想要適配多種手機,建議多使用相譽慎仔對布局,會系統適配慶汪手機尺寸。
G. 如何讓安卓的控制項重疊在一起
相對布局,兩個組件放到一個相對布局中,然後布局自適應大小,關閉放在父類布局的右上角
H. android framelayout兩布局重疊,如何讓下層不響應事件
設置上層布局的屬性神戚此android:clickable="true"就行了。仔鏈