package com.example.appliushibuju;
import android.content.Context;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.util.ArrayList;
public class SelfView extends RelativeLayout {
private Context context;
private LinearLayout layout_all;
public SelfView(Context context) {
super(context);
init(context);
}
public SelfView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init(context);
}
public SelfView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
private void init(Context context) {
this.context = context;
View view = View.inflate(context, R.layout.layout_h, null);
layout_all = view.findViewById(R.id.layout_all);
setList();
addView(view);
}
private void setList() {
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("撒扥安赛飞的飞阿森的阿森");
arrayList.add("撒扥安飞阿森森");
arrayList.add("撒森");
arrayList.add("撒扥阿森的阿森");
arrayList.add("撒森的阿森");
arrayList.add("撒森");
arrayList.add("撒扥阿森的阿森");
arrayList.add("撒扥安赛飞的阿森阿森");
layout_all.removeAllViews();
LinearLayout view = (LinearLayout) View.inflate(context, R.layout.layout_h2, null);
int len = 0;
layout_all.addView(view);
view.removeAllViews();
for (int i = 0; i <arrayList.size() ; i++) {
len=len+arrayList.get(i).length();
if (len>22){
view = (LinearLayout) View.inflate(context, R.layout.layout_h2, null);
layout_all.addView(view);
len = 0;
}
View viewText = View.inflate(context, R.layout.layout_text,null);
TextView text_view = viewText.findViewById(R.id.text_view);
text_view.setText(arrayList.get(i));
view.addView(viewText);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) viewText.getLayoutParams();
params.weight=1;
params.setMargins(10,10,10,0);
viewText.setLayoutParams(params);
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/layout_all"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</LinearLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:background="@drawable/shaoe"
android:layout_weight="1"
android:layout_height="match_parent">
<TextView
android:padding="5dp"
android:layout_centerInParent="true"
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
package dw.dw.com.xiaoxuzahuopu.myview;
import android.content.Context;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import java.util.List;
import dw.dw.com.xiaoxuzahuopu.R;
public class FluidlayoutView extends LinearLayout {
private Context context;
private LinearLayout fluid_vertical_layout;
public FluidlayoutView(Context context) {
super(context);
init(context);
}
public FluidlayoutView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init(context);
}
public FluidlayoutView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
private void init(Context context) {
this.context = context;
fluid_vertical_layout = (LinearLayout) View.inflate(context, R.layout.fluid_vertical_layout, null);
addView(fluid_vertical_layout);
}
private void content(List<String> recordList) {
fluid_vertical_layout.removeAllViews();
LinearLayout fluid_horizontal_layout = (LinearLayout) View.inflate(context, R.layout.fluid_horizontal_layout, null);
fluid_vertical_layout.addView(fluid_horizontal_layout);
fluid_horizontal_layout.removeAllViews();
int len = 0;
for (int i = 0; i <recordList.size() ; i++) {
len+=recordList.get(i).length();
if (len>22){
fluid_horizontal_layout = (LinearLayout) View.inflate(context, R.layout.fluid_horizontal_layout, null);
fluid_vertical_layout.addView(fluid_horizontal_layout);
len = 0;
}
View view = View.inflate(context, R.layout.fluid_content_layout, null);
TextView fluid_content_TextView = view.findViewById(R.id.fluid_content_TextView);
fluid_content_TextView.setText(recordList.get(i));
fluid_horizontal_layout.addView(view);
}
}
public void setList(List<String> recordList) {
if (recordList!=null){
content(recordList);
}
}
}