亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android自定View流式布局根據文字數量換行

2019-10-21 21:34:19
字體:
來源:轉載
供稿:網友

本文實例為大家分享了Android根據文字數量換行的具體代碼,供大家參考,具體內容如下

//主頁 定義數據框

 

package com.example.customwaterfallviewgroup;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.EditText;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {  List<String> stringList = new ArrayList<>();  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    initView();  }  private void initView() {    final EditText editText = findViewById(R.id.edit);    final CustomWaterFallViewGroup customWaterFallViewGroup = findViewById(R.id.water_fill);    findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {      @Override      public void onClick(View v) {        //獲取輸入框的值        String str = editText.getText().toString();        //將文字放入列表        stringList.add(str);        //設置數據        customWaterFallViewGroup.setData(stringList);      }    });  }}

//zhuye 布局

 

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:app="http://schemas.android.com/apk/res-auto"  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:orientation="vertical"  tools:context=".MainActivity">  <EditText    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:id="@+id/edit"    android:hint="輸入"    />  <Button    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:id="@+id/button"    android:text="add"    />  <com.example.customwaterfallviewgroup.CustomWaterFallViewGroup    android:layout_width="match_parent"    android:layout_height="match_parent"    android:id="@+id/water_fill"    /></LinearLayout>

//自定義流式布局

 

package com.example.customwaterfallviewgroup;import android.content.Context;import android.graphics.Canvas;import android.util.AttributeSet;import android.util.DisplayMetrics;import android.view.View;import android.view.ViewGroup;import android.widget.LinearLayout;import android.widget.TextView;import android.widget.Toast;import java.util.ArrayList;import java.util.List;public class CustomWaterFallViewGroup extends LinearLayout {  //設置每一行最大的字符串的長度  int mMaxSize = 22;  //傳入的字符串數組  List<String> stringList = new ArrayList<>();  Context mcontext;  public CustomWaterFallViewGroup(Context context) {    super(context);    mcontext = context;    init();  }  public CustomWaterFallViewGroup(Context context,AttributeSet attrs) {    super(context, attrs);    mcontext = context;    init();  }  //定義布局  private void init() {    //設置最外層的LinearLayout 為垂直布局    setOrientation(VERTICAL);  }  @Override  protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {    super.onMeasure(widthMeasureSpec, heightMeasureSpec);    DisplayMetrics displayMetrics = mcontext.getResources().getDisplayMetrics();    int widthPixels = displayMetrics.widthPixels;    setMeasuredDimension(widthPixels,heightMeasureSpec);  }  @Override  protected void onLayout(boolean changed, int l, int t, int r, int b) {    super.onLayout(changed, l, t, r, b);  }  @Override  protected void onDraw(Canvas canvas) {    super.onDraw(canvas);  }  public void setData(List<String> stringList) {    //上一個輸入框里的數據存到這個頁面的集合中     this.stringList = stringList;    showData();  }  private void showData() {    //因為每一次都要重新畫 ,所以移除之前的布局 顯示更新過的布局    removeAllViews();    //優先向跟布局添加一條橫向布局    LinearLayout linearLayout_h = (LinearLayout) View.inflate(mcontext,R.layout.item_water_fall_h,null);    addView(linearLayout_h);    //定義臨時變量。用來計算最后一行已有的字符長度    int len = 0;    for (int i = 0;i<stringList.size();i++){      String str = stringList.get(i);      //將次字符串長度與記錄的已有字符串長度相加      len += str.length();      //-判斷 如果大于最大長度,說明這一行放不下了      //需要自動換行      if (len > mMaxSize){        //像跟布局添加一條橫布局        linearLayout_h = (LinearLayout) View.inflate(mcontext,R.layout.item_water_fall_h,null);        addView(linearLayout_h);        //換行以后因為不添加了 所以 當前的救是最后一行的長度        len = str.length();      }      //添加一個textView控件      View view = View.inflate(mcontext,R.layout.water_fall_textview,null);      //獲取到它的ID      TextView textView = view.findViewById(R.id.water_fall_textview);      //得到后給它賦值 (輸入框里的值 給它)      textView.setText(str);      //添加到布局中      linearLayout_h.addView(view);      //設置權重 讓每一行內所有的控件相加充滿整行,并合理分配      LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) view.getLayoutParams();      layoutParams.weight = 1;      view.setLayoutParams(layoutParams);      final int index = i;      view.setOnClickListener(new OnClickListener() {        @Override        public void onClick(View v) {          Toast.makeText(mcontext,"您點擊了"+stringList.get(index),Toast.LENGTH_SHORT).show();        }      });      view.setOnLongClickListener(new OnLongClickListener() {        @Override        public boolean onLongClick(View v) {          stringList.remove(index);          showData();          return false;        }      });    }  }}

//每一行的布局

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:id="@+id/water_fall_h"  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:orientation="horizontal"></LinearLayout>

//流式布局

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:orientation="horizontal"  >  <TextView    android:id="@+id/water_fall_textview"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:background="@color/colorAccent"    android:layout_weight="1"    android:textSize="20dp"    android:layout_marginRight="5dp"    android:layout_marginLeft="5dp"    android:layout_marginTop="10dp"    android:gravity="center"    /></LinearLayout>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色综合伊人色综合网站| 亚洲毛片一区二区| 国产成人综合一区二区三区| 欧洲成人在线视频| 亚洲成色999久久网站| 欧美性猛交xxxx免费看漫画| 国产三级精品网站| 美女av一区二区三区| 国产欧美 在线欧美| 日韩视频中文字幕| 久久久久久久电影一区| 日韩中文在线视频| 91在线视频九色| 91久久久久久久久| 亚洲精品免费一区二区三区| 91久久久久久久久久久久久| 成人黄色在线播放| 91av在线免费观看视频| 97碰在线观看| 亚洲国产精品99久久| 欧美不卡视频一区发布| 日韩美女主播视频| 成人有码在线视频| 久久精品久久久久电影| 性夜试看影院91社区| 国内精品久久久久影院优| 国产91对白在线播放| 国产日韩在线亚洲字幕中文| 亚洲日韩中文字幕在线播放| 亚洲天堂男人天堂女人天堂| 中文字幕av一区中文字幕天堂| 亚洲一级片在线看| 久久久久久中文| 伊人av综合网| 国产精品一区二区电影| 色99之美女主播在线视频| 欧美在线视频一区| 日av在线播放中文不卡| 午夜精品久久久久久久99黑人| 国产在线不卡精品| 久久久久久伊人| 亚洲精品视频在线观看视频| 亚洲激情国产精品| 久久在线免费观看视频| 亚洲欧美国产va在线影院| 国产成人精品在线观看| 中文字幕亚洲色图| 91精品国产亚洲| 国产69精品99久久久久久宅男| 日韩网站免费观看| 国产精品一区二区女厕厕| 亚洲精品午夜精品| 亚洲精品视频久久| 亚洲欧美一区二区三区情侣bbw| 中文字幕在线亚洲| 中文字幕久久亚洲| 日韩亚洲成人av在线| 亚洲欧美激情四射在线日| 亚洲天堂免费视频| 亚洲精品久久久久久久久久久久| 中文字幕最新精品| 97超级碰在线看视频免费在线看| 国产精品小说在线| 成人xvideos免费视频| 国产区精品视频| 国产精品视频久久久| 久久久视频免费观看| 97精品视频在线播放| 麻豆精品精华液| 亚洲精品电影网| 中文字幕亚洲二区| 国产精品久久色| 97视频在线观看免费高清完整版在线观看| 久久色精品视频| 国产精品高精视频免费| 久久黄色av网站| 亚洲欧美成人一区二区在线电影| 亚洲美女视频网| 91免费电影网站| 欧美激情三级免费| 国产精品www| 在线播放国产一区二区三区| 欧美猛交ⅹxxx乱大交视频| 国产精品久久久久av| 国产成人+综合亚洲+天堂| 亚洲深夜福利网站| 国语自产精品视频在线看| 亚洲伊人久久大香线蕉av| 亚洲国产小视频在线观看| 久久久久久久网站| 亚洲第五色综合网| 国产精品久久久av久久久| 中文字幕日韩电影| 欧美极品在线视频| 亚洲成人亚洲激情| 国产精品18久久久久久首页狼| 欧美电影免费在线观看| 4438全国亚洲精品在线观看视频| 黑人巨大精品欧美一区二区一视频| 欧美色欧美亚洲高清在线视频| 成人免费看吃奶视频网站| 亚洲xxxx3d| 久久亚洲私人国产精品va| 欧美性猛交xxxxx免费看| 成人做爰www免费看视频网站| 青青久久aⅴ北条麻妃| 日韩中文字幕在线视频播放| 亚洲天堂av高清| 国产精品人人做人人爽| 国产精品第2页| 欧美性一区二区三区| 日韩精品免费在线视频观看| 欧美激情a∨在线视频播放| 国产女精品视频网站免费| 国产精品久久久久久网站| 成人免费看吃奶视频网站| 久久福利视频导航| 亚洲欧洲xxxx| 亚洲开心激情网| 国产精品一区二区久久精品| 国产91精品最新在线播放| 亚洲亚裔videos黑人hd| 欧美国产日韩中文字幕在线| 最近中文字幕日韩精品| 欧美精品激情blacked18| 欧美在线一级视频| 日韩欧美国产中文字幕| 亚洲电影免费观看高清| 久久国产精品久久久久久久久久| 国产成人精品午夜| 欧美福利在线观看| 欧美激情xxxxx| 精品二区三区线观看| 日韩成人在线观看| 国产精品高清在线观看| 久久久黄色av| 国产精品久久久久久久久久ktv| 在线亚洲男人天堂| 91大神福利视频在线| 欧美亚洲在线观看| 国产在线精品成人一区二区三区| 精品一区精品二区| 欧美国产欧美亚洲国产日韩mv天天看完整| 成人国产精品一区二区| 亚洲国产一区自拍| 国内精品久久久久久| 国产精品羞羞答答| 伊人精品在线观看| 国产亚洲成av人片在线观看桃| 亚洲成人性视频| 国产精品久久久| 国产在线拍揄自揄视频不卡99| 国产91成人在在线播放| 久久亚洲精品一区二区| 国产成人福利网站| 亚洲精品国产精品乱码不99按摩| 久久久久久久久久久亚洲| 国产97在线亚洲| 国产一区二区三区毛片| 亚洲视频电影图片偷拍一区| 国产欧美一区二区三区在线看| 91精品国产综合久久香蕉的用户体验| www.亚洲一二| 成人免费福利视频|