RelativeLayout
- 點擊view時不讓背後的按鈕吃到click事件:設定xml的 android:clickable="true"
Tab
- Android 的 Tab 有很多實作方法,最早是用 TabHost,然後有 SlidingTab 的出現。之前的 Tab 實作方式都挺麻煩的,現在新版的 Android Support Design Library 直接多了一個 Tab 控件 TabLayout,簡化 Tab 的實作方式。
- 使用FragmentPagerAdapter注意事項:
- 若TabLayout本身已經在一個fragment中的話,FragmentPagerAdapter的constructor必須塞Fragment.childFragmentManager()
TextView
用Html.fromHtml來產生TextView的文字,Html中有<a herf="XXX://YYY/ZZZ"/>想要直接透過點擊觸發動作,可依照以下步驟
在要觸發的Activityor想啟動的Activity的AndroidMenifest.xml加入IntentFilter宣告
<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="XXX" />` </intent-filter>
TextView的xml設定屬性
android:linksClickable="true"
假設TextView物件為textView,htmlText為html內容
val styledText = Html.fromHtml\(htmlText\) textView.text = styledText val pattern = Pattern.compile\(""\) Linkify.addLinks\(textView,pattern,""\)
延續上面,若想呈現html中的圖片tag <img src="AAA"/>
可改用Html.fromHtml(htmlText,imageGetter,null)產生textView所需文字
其中imageGetter如下,AAA為tag值
val imageGetter = object :Html.ImageGetter{ override fun getDrawable(src: String?): Drawable { var id:Int = 0 if (src!!.equals("AAA")) { id = R.drawable.BBB } val d = activity.resources.getDrawable(id,null) d.setBounds(0,0,d.getIntrinsicWidth(),d.getIntrinsicHeight()); return d } }
TableLayout
- 在xml上的屬性
- 以下屬性皆可用於TableLayout與TableRow,分別做垂直跟水平的屬性設定
- android:stretchColumns
- 指定index為可延伸欄位,有多個用逗號隔開
- android:stretchColumns
- divider相關屬性
- TableRow管理的是該Row的Cell與Cell之間的divider=Horizontal的divider
- TableLayout包在TableRow外面,管理的是TableRow之間的divider=Vertical的divider
- 以下屬性皆可用於TableLayout與TableRow,分別做垂直跟水平的屬性設定
類別與物件
- 取得某個class的完整名稱
- Kotlin =
AAA::class.java.name
- Kotlin =
Others