精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Android輕松搞定流動布局

企業動態
簡單來說 Flexbox 是屬于web前端領域CSS的一種布局方案,是2009年W3C提出了一種新的布局方案,可以響應式地實現各種頁面布局,并且React Native也是使用的Flex布局。

[[190928]]

以前我們要實現流動性布局,比較繁瑣,Google開源了一個項目叫FlexboxLayout,相信大家都不陌生。下面我們來學習一下FlexboxLayout基礎知識,并通過一個案例來加深理解。如果你對FlexboxLayout很熟悉,請忽略本文。

1. 什么是 Flexbox

簡單來說 Flexbox 是屬于web前端領域CSS的一種布局方案,是2009年W3C提出了一種新的布局方案,可以響應式地實現各種頁面布局,并且 React Native 也是使用的 Flex 布局。

我們可以簡單的理解為 Flexbox 是CSS領域類似 Linearlayout 的一種布局,但比 Linearlayout 要強大的多。

2. 什么是 FlexboxLayout?

我們在 Android 開發中使用 Linearlayout + RelativeLayout 基本可以實現大部分復雜的布局,但是Google就想了,有沒有類似 Flexbox 的一個布局呢?這使用起來一個布局就可以搞定各種復雜的情況了,于是 FlexboxLayout 就應運而生了。

所以 FlexboxLayout 是針對 Android 平臺的,實現類似 Flexbox 布局方案的一個開源項目,開源地址:https://github.com/google/flexbox-layout

3. 使用方式

使用方式很簡單,只需要添加以下依賴:

  1. compile 'com.google.android:flexbox:0.2.2' 

在xml布局中我們可以這樣使用

  1. <com.google.android.flexbox.FlexboxLayout 
  2.        android:id="@+id/flexbox_layout" 
  3.        android:layout_width="match_parent" 
  4.        android:layout_height="wrap_content" 
  5.        app:flexWrap="wrap"
  6.      <TextView 
  7.        android:id="@+id/tv1" 
  8.        android:layout_width="120dp" 
  9.        android:layout_height="80dp" 
  10.        app:layout_flexBasisPercent="50%" /> 
  11.       <TextView 
  12.        android:id="@+id/tv2" 
  13.        android:layout_width="80dp" 
  14.        android:layout_height="80dp" 
  15.        app:layout_alignSelf="center"/> 
  16.       <TextView 
  17.        android:id="@+id/tv3" 
  18.        android:layout_width="160dp" 
  19.        android:layout_height="80dp" 
  20.        app:layout_alignSelf="flex_end"/> 
  21.    </com.google.android.flexbox.FlexboxLayout> 

代碼中可以這樣使用

  1. FlexboxLayout flexboxLayout = (FlexboxLayout) findViewById(R.id.flexbox_layout); 
  2. flexboxLayout.setFlexDirection(FlexboxLayout.FLEX_DIRECTION_COLUMN); 
  3. View view = flexboxLayout.getChildAt(0); 
  4. FlexboxLayout.LayoutParams lp = (FlexboxLayout.LayoutParams) view.getLayoutParams(); 
  5. lp.order = -1; 
  6. lp.flexGrow = 2; 
  7. view.setLayoutParams(lp); 

我們來看平臺熱門專題的布局:

下面我們來實現它,先來看最終實現的效果:

1. 新建activity_flow.xml布局

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     xmlns:app="http://schemas.android.com/apk/res-auto" 
  4.     android:layout_width="match_parent" 
  5.     android:layout_height="match_parent"
  6.     <com.google.android.flexbox.FlexboxLayout 
  7.         android:id="@+id/flexbox_layout" 
  8.         android:layout_width="match_parent" 
  9.         android:layout_height="wrap_content" 
  10.         app:flexWrap="wrap" /> 
  11. </RelativeLayout> 

布局很簡單,只有一個FlexboxLayout 因為我們需要動態創建它的item,所以就在這里固定寫TextView了。

2. 新建ActivityFlow Activity,填充數據源

  1. String[] tags = {"婚姻育兒""散文""設計""上班這點事兒""影視天堂""大學生活""美人說""運動和健身""工具癖""生活家""程序員""想法""短篇小說""美食""教育""心理""奇思妙想""美食""攝影"}; 
  2.         flexboxLayout = (FlexboxLayout) findViewById(R.id.flexbox_layout); 
  3.         for (int i = 0; i < tags.length; i++) { 
  4.             Book model = new Book(); 
  5.             model.setId(i); 
  6.             model.setName(tags[i]); 
  7.             flexboxLayout.addView(createNewFlexItemTextView(model)); 
  8.         } 

其中Book為一個實體,這個不是關鍵,關鍵的是createNewFlexItemTextView方法。

  1. /** 
  2.      * 動態創建TextView 
  3.      * @param book 
  4.      * @return 
  5.      */ 
  6.     private TextView createNewFlexItemTextView(final Book book) { 
  7.         TextView textView = new TextView(this); 
  8.         textView.setGravity(Gravity.CENTER); 
  9.         textView.setText(book.getName()); 
  10.         textView.setTextSize(12); 
  11.         textView.setTextColor(getResources().getColor(R.color.colorAccent)); 
  12.         textView.setBackgroundResource(R.drawable.tag_states); 
  13.         textView.setTag(book.getId()); 
  14.         textView.setOnClickListener(new View.OnClickListener() { 
  15.             @Override 
  16.             public void onClick(View view) { 
  17.                 Log.e(TAG, book.getName()); 
  18.             } 
  19.         }); 
  20.         int padding = Util.dpToPixel(this, 4); 
  21.         int paddingLeftAndRight = Util.dpToPixel(this, 8); 
  22.         ViewCompat.setPaddingRelative(textView, paddingLeftAndRight, padding, paddingLeftAndRight, padding); 
  23.         FlexboxLayout.LayoutParams layoutParams = new FlexboxLayout.LayoutParams( 
  24.                 ViewGroup.LayoutParams.WRAP_CONTENT, 
  25.                 ViewGroup.LayoutParams.WRAP_CONTENT); 
  26.         int margin = Util.dpToPixel(this, 6); 
  27.         int marginTop = Util.dpToPixel(this, 16); 
  28.         layoutParams.setMargins(margin, marginTop, margin, 0); 
  29.         textView.setLayoutParams(layoutParams); 
  30.         return textView; 
  31.     } 

其他有關Book實體和Util類,也貼出來一下

Book實體

  1. public class Book { 
  2.     private int id; 
  3.     private String name
  4.     public String getName() { 
  5.         return name
  6.     } 
  7.     public void setName(String name) { 
  8.         this.name = name
  9.     } 
  10.     public int getId() { 
  11.         return id; 
  12.     } 
  13.     public void setId(int id) { 
  14.         this.id = id; 
  15.     } 
  16.     public Book() { 
  17.     } 

Util工具類

  1. public class Util { 
  2.     public static int pixelToDp(Context context, int pixel) { 
  3.         DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); 
  4.         return pixel < 0 ? pixel : Math.round(pixel / displayMetrics.density); 
  5.     } 
  6.     public static int dpToPixel(Context context, int dp) { 
  7.         DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); 
  8.         return dp < 0 ? dp : Math.round(dp * displayMetrics.density); 
  9.     } 

這樣關于流動布局[FlexboxLayout],我們就實現完成了,是不是很簡單。

【本文為51CTO專欄作者“洪生鵬”的原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2022-09-16 08:04:25

阿里云權限網絡

2009-12-11 15:37:58

Linux日志處理

2009-10-23 17:51:51

Oracle用戶密碼

2025-02-07 08:39:32

Shell部署測試

2010-09-17 14:04:14

JVM內存設置

2020-05-11 10:59:02

PythonWord工具

2024-08-09 08:52:26

2009-11-12 10:53:57

ADO.NET連接My

2010-06-04 09:08:56

2010-07-27 14:25:02

linux文件編碼

2024-08-02 09:00:17

NettyWebSocketNIO

2009-09-13 20:28:38

Linq插入數據

2010-09-13 14:17:34

2009-12-03 11:37:56

Suse Linux

2024-08-26 08:27:18

2025-07-02 08:00:00

防抖SpringBoot開發

2010-01-21 16:57:35

交換機網關設置

2016-03-17 17:35:15

云容器虛擬化管理Docker

2011-03-25 09:01:42

Web亂碼

2024-06-06 08:40:07

點贊
收藏

51CTO技術棧公眾號

无码 制服 丝袜 国产 另类| 国产精品自产拍高潮在线观看| 国模无码视频一区| 在线高清av| 国产精品女人毛片| 国产中文字幕91| 久久亚洲成人av| 亚洲国产最新| 欧美美女视频在线观看| 黄色成人在线免费观看| 久久久久久女乱国产| 久久av中文字幕片| 97av视频在线| 欧美视频www| 美女视频免费精品| 欧美久久久久免费| 日本午夜激情视频| 日韩在线视频网址| 色悠久久久久综合先锋影音下载| 午夜婷婷国产麻豆精品| 亚洲欧美日韩综合一区| 亚洲精品成av人片天堂无码 | 国产成人亚洲精品自产在线| 不卡av一区二区| 欧美精品一区二区高清在线观看 | 亚洲精品视频在线观看视频| 性欧美在线视频| 一根才成人网| 亚洲h精品动漫在线观看| 在线看视频不卡| 黄色国产在线| 91亚洲精品一区二区乱码| 国产精品一香蕉国产线看观看 | 又爽又大又黄a级毛片在线视频| 不卡的av网站| 国产超碰91| 国产精品欧美激情在线| 日韩不卡手机在线v区| 91大神福利视频在线| 久草免费在线观看视频| 中国成人一区| 久久久精品999| 国产一区在线观看免费| 成人激情视频| 中文在线不卡视频| 我想看黄色大片| 国产99亚洲| 亚洲欧美中文日韩v在线观看| 日本道中文字幕| 91精品尤物| 日韩欧美成人午夜| 精品国产aⅴ一区二区三区东京热| 91丨精品丨国产| 欧美日韩精品一区二区在线播放 | 看片一区二区| 欧美视频在线观看一区二区| 天天爽天天爽夜夜爽| 亚洲成av在线| 欧美日韩久久一区| 超碰中文字幕在线观看| 精品久久亚洲| 欧美成人一区二区三区在线观看| 9191在线视频| 国产毛片久久久| 亚洲精品第一页| 极品粉嫩小仙女高潮喷水久久| 午夜先锋成人动漫在线| 亚洲欧美成人网| 国产精品久久久久久久av| 成人无号精品一区二区三区| 久久精品99久久香蕉国产色戒| www色aa色aawww| 欧美欧美全黄| 69久久夜色精品国产7777| 综合激情网五月| 日本成人在线电影网| 91精品久久久久久久久| www香蕉视频| 91日韩精品一区| 性欧美.com| 影音先锋在线播放| 精品日韩中文字幕| 久久久久久久少妇| 涩涩涩久久久成人精品| 欧美tk—视频vk| 美女100%无挡| 亚洲一区在线| 欧美怡红院视频一区二区三区| 天天干天天插天天射| 国产一区二区三区在线看麻豆| 91传媒视频免费| 欧美婷婷久久五月精品三区| 国产精品美女久久久久久久久| 久久www视频| 欧美精品高清| 欧美成人video| 波多野结衣av在线观看| 91精品久久久久久久久久不卡| 国内自拍欧美激情| 91午夜交换视频| 91在线看国产| 香蕉视频免费版| 黄色成人免费网| 日韩免费视频线观看| 国产aⅴ激情无码久久久无码| 女生裸体视频一区二区三区 | 福利一区三区| 亚洲精品视频在线播放 | 色综合久久六月婷婷中文字幕| 男生操女生视频在线观看| 欧美男男freegayvideosroom| 最近中文字幕日韩精品| 91美女免费看| 国产69精品久久久久777| 色综合久久av| 忘忧草在线日韩www影院| 日韩欧美一级二级三级久久久| 亚洲a v网站| 国产精品人人爽人人做我的可爱| 91免费在线视频| 成人18在线| 欧美午夜精品久久久久久久| 香蕉视频1024| 97色伦图片97综合影院| 国产精品爱久久久久久久| 欧美一级一区二区三区| 亚洲欧美一区二区三区孕妇| 亚洲视频在线a| 色综合久久中文| 久久久免费av| www.国产精品视频| 亚洲青青青在线视频| 亚洲综合日韩欧美| 成人羞羞视频在线看网址| 青青a在线精品免费观看| 色婷婷综合视频| 亚洲国产成人porn| 91精品人妻一区二区三区蜜桃2| 欧美3p在线观看| 国产精品色婷婷视频| 国产女主播在线写真| 色综合天天综合在线视频| 中文文字幕文字幕高清| 99精品国产在热久久婷婷| 国产高清一区视频| www.综合网.com| 亚洲精品久久久久久下一站| 国产奶水涨喷在线播放| aaa亚洲精品| 2022亚洲天堂| 蜜桃a∨噜噜一区二区三区| 国内精品视频一区| 头脑特工队2免费完整版在线观看| 亚洲成年人影院| 中文字幕乱码一区| 在线视频精品| 青青草久久网络| 精品福利在线| 久久成人亚洲精品| 亚洲黄色在线播放| 黄色一区二区在线| 一区二区三区四区免费| 日本不卡在线视频| 中文字幕一区二区三区在线乱码| 国产美女精品视频免费播放软件| 欧美精品在线看| 搡老岳熟女国产熟妇| 欧美日韩中文字幕| 我想看黄色大片| 国产精品综合一区二区三区| 国产www免费| 亚洲男人都懂第一日本| 国产精品人人做人人爽| 黄网站在线播放| 亚洲国产成人精品女人久久久| 天天操天天干视频| 欧美高清在线精品一区| 黄色片免费网址| 99热免费精品| 亚洲一区二区三区精品在线观看 | 精品福利一区二区三区免费视频| 日本高清www免费视频| 国产欧美日韩另类一区| 日本高清免费观看| 一本不卡影院| 中文字幕99| 欧美人妖视频| 91精品国产综合久久香蕉最新版 | 极品蜜桃臀肥臀-x88av| 国产成人精品亚洲午夜麻豆| 欧美日本视频在线观看| 久久亚洲专区| 久久九九视频| **国产精品| 日本精品视频在线| sm国产在线调教视频| 亚洲色图欧美制服丝袜另类第一页| 伊人精品在线视频| 亚洲成av人影院在线观看网| 中文字幕精品亚洲| 97se亚洲国产综合在线| 在线看免费毛片| 男女精品网站| 欧美狂野激情性xxxx在线观| 欧美另类69xxxxx| 国产伦理一区二区三区| 95精品视频| 国产精品第3页| 成入视频在线观看| 久久成人在线视频| 91.xxx.高清在线| 日韩精品免费一线在线观看| 99产精品成人啪免费网站| 色天天综合色天天久久| 国产一级大片在线观看| 综合久久综合久久| 老头老太做爰xxx视频| 99久久精品免费看国产免费软件| 国产亚洲视频一区| 日韩vs国产vs欧美| 欧美日韩成人免费视频| 欧美视频一区| 公共露出暴露狂另类av| 日韩在线第七页| 欧美婷婷久久| 网红女主播少妇精品视频| 不卡的av一区| 成人短视频软件网站大全app| 国产精品夫妻激情| www.成人影院| 欧美在线免费看| 蜜桃视频在线观看免费视频| 97香蕉超级碰碰久久免费的优势 | 欧美重口另类videos人妖| 岛国毛片av在线| 色综合久久88| 丝袜中文在线| 色综合老司机第九色激情| 国产在线激情| 久久久av亚洲男天堂| 欧美三级理伦电影| 久久人人爽亚洲精品天堂| 欧美jizzhd欧美| 日韩亚洲国产中文字幕| 日本在线天堂| 久久这里有精品视频| 免费看美女视频在线网站| 最新国产精品拍自在线播放| bbbbbbbbbbb在线视频| 在线观看视频亚洲| 免费av网站在线观看| 精品精品国产国产自在线| 黄色免费在线观看网站| 操日韩av在线电影| 黑人玩欧美人三根一起进| 国语自产精品视频在线看抢先版图片| sm在线观看| 日韩美女写真福利在线观看| 精品国模一区二区三区| 国产免费亚洲高清| 精品麻豆剧传媒av国产九九九| 99在线免费观看视频| 欧美午夜18电影| 日韩激情久久| 久久中文字幕av| 91免费国产精品| 奶水喷射视频一区| 日本三级黄色网址| 国产成人av资源| 人妻丰满熟妇av无码久久洗澡 | 不卡一区二区在线| 加勒比综合在线| 中文字幕一区二区日韩精品绯色| 欧美爱爱免费视频| 精品人伦一区二区三区蜜桃免费| 日韩国产成人在线| 日韩一区二区三区在线| 天堂资源最新在线| 中文字幕成人在线| 色呦呦久久久| 日韩av大片在线| 成人免费91| 久久本道综合色狠狠五月| 欧美天天综合| 国产1区2区3区中文字幕| 国产美女精品| www.桃色.com| 2020国产精品自拍| 清纯粉嫩极品夜夜嗨av| 日韩欧美精品在线观看| 11024精品一区二区三区日韩| 精品av久久707| av在线电影免费观看| 久久免费视频网| 香蕉久久久久久| 免费日韩电影在线观看| 久久久久久久久丰满| 国产三区在线视频| 国产精品影音先锋| 97人妻人人揉人人躁人人| 亚洲成人精品一区| 国产又粗又猛又黄又爽无遮挡| 亚洲激情第一页| 91网址在线观看| 国产精品99久久久久久www| 电影一区二区在线观看| 黄频视频在线观看| 久久久国产亚洲精品| 亚洲麻豆一区二区三区| 亚洲欧美一区二区视频| 国产成人无码一区二区在线播放| 欧美成人伊人久久综合网| 天天在线视频色| 国产成人拍精品视频午夜网站| 91亚洲无吗| 国产av第一区| 美女mm1313爽爽久久久蜜臀| 久久无码人妻精品一区二区三区| 一区二区三区欧美日| 91久久精品国产91性色69| 亚洲视频一区二区| 最新日韩精品| 精品国产一区二区三区免费 | 国产精品久久影院| 国产精品第5页| 精品亚洲va在线va天堂资源站| 黄色成人在线网| 99久久综合狠狠综合久久止| 色狮一区二区三区四区视频| 北条麻妃视频在线| 91浏览器在线视频| 天堂网av手机版| 精品国产精品网麻豆系列| 影音先锋在线播放| 91丝袜脚交足在线播放| 亚洲天堂免费| 在线成人免费av| 亚洲激情综合网| 国产成人三级一区二区在线观看一| 色999日韩欧美国产| 久久精品国产精品亚洲毛片| 色噜噜一区二区| 蜜桃久久精品一区二区| 99精品全国免费观看| 在线看日本不卡| 丁香在线视频| 国产伦精品免费视频| 99热精品久久| 樱花草www在线| 亚洲九九爱视频| 丰满人妻一区二区| 国产69精品久久久久9| 久久久亚洲欧洲日产| 亚洲自偷自拍熟女另类| 91在线高清观看| 看黄色一级大片| 久久伊人精品天天| av不卡一区| 国产日产欧美视频| 亚洲国产经典视频| 一区二区三区免费在线视频| 欧美精品午夜视频| 嫩草国产精品入口| 99草草国产熟女视频在线| 国产精品免费人成网站| 国产99久久九九精品无码免费| 久久91精品国产91久久久| 久草在线综合| 美女一区二区三区视频| 亚洲男人电影天堂| 天堂网在线中文| 国产精品久久久久久五月尺| 一区二区三区午夜探花| 中文字幕精品视频在线| 欧美在线观看一二区| bestiality新另类大全| 精品久久久久久综合日本| 轻轻草成人在线| 久草福利资源在线观看| 亚洲欧美成人在线| 国产精一区二区| 亚洲熟女乱色一区二区三区| 中文一区一区三区高中清不卡| 国产sm主人调教女m视频| 国内精品久久久久久中文字幕| 欧州一区二区| 国产国语老龄妇女a片| 91福利资源站| 美女91在线| 亚洲精品日韩精品| 成人aaaa免费全部观看| 在线观看国产精品入口男同| 欧美高清videos高潮hd| 欧美精品一二| 亚洲欧美日韩偷拍| 欧美日韩精品系列| 二区三区不卡| 国产乱淫av片杨贵妃| 国产精品久久久久影视| 亚洲欧美综合在线观看|