流式布局

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);
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值