android - 像知乎設置頁這樣的列表樣式是怎么實現的?
問題描述
從這兩大部分的陰影樣式來看,感覺像是用了兩個cardview,一個包含了上面「我的草稿,最近瀏覽。。等等條目」,另一個包含了「夜間模式」和「設置」,是這樣嗎?還是說整體就是一個RecyclerView?
另外,item之間的分割線是怎么做的?謝謝
問題解答
回答1:因為這些條目個數是固定的,而且數量也是少,你完全可以自己寫全部的列表啊,樣式copy下其實是效率最高的,分割線其實就是一個左邊有margin的view,設置個背景色,高度1px
回答2:所有看著像偏好設置的頁面都可以使用如下Fragment來實現:
android.preference.PreferenceFragment, 用于原生環境
android.support.v7.preference.PreferenceFragmentCompat, 用于兼容環境
1, 2 基本功能是一樣的, 只是2是為了低版本兼容而存在的, 也是最近版本的support-v7才引進的. 1的列表是使用ListView實現的, 2的列表是使用RecyclerView實現的, 除此之外, 這倆都有一組Preference, 即列表中的Item項, 可以實現各種需求, 也可以自定義.
具體思路:
[夜間模式], [設置] 就是一個Preference
[夜間模式] 上面的分隔線就是一個沒有設置任何內容的 PreferenceCategory
根據需求寫*prefs.xml吧
p.s.Preference 的layout可以通過調用接口或者修改themes.xml(樣式)來設置
具體用法:
官方文檔: PreferenceFragment
p.s. 更多用法自行Google吧.
回答3:linearlayout的話有showpiders,你百度或者Google下,很方便,不用寫View當分割線
相關文章:
1. node.js - express請求的具體方法2. node.js - AWS配置nginx的反向代理不生效問題3. node.js - 關于Node爬蟲爬小說的問題4. html5 - 有可以一次性把所有 css外部樣式轉為html標簽內style=" "的方法嗎?5. web - Rails3使用form_for時出現undefined method `*_path’錯誤。6. node.js - 關于mongoose方法的回調函數的參數問題,如何知道參數個數以及參數代表什么含義呢?7. node.js - react應用加了react-redux后webpack打包后頁面顯示空白,也沒有報錯8. node.js - 引入node-fetch后,使用webpack的時候報錯!9. 在啟動后的90秒內,Heroku- Web進程未能綁定到$ PORT。TooTallNate Websockets10. node.js - 如何使用mongoose連接數據庫中已經存在的一個集合。
