我想大家在开发过程中都碰到过这样的需求,类似标签展示,要展示如上图效果,这里面的数据不确定每项字数,有的非常长,有的很短,数据动态填充。
前言 因为需求的原因,需要去使用流式布局,但是这次我们的需求,和我之前的见到的流式布局不太一样。因为我们的是居中显示的流式布局。这时候,就得自己去自定义了。 老规矩,先看图。 这里说一下,我的实现思路
Java开发GUI之FlowLayout流布局 FlowLayout顾名思义,即流式布局。 其默认以行进行布局,可以设置对齐模式,当一行的距离不够组件进行排列时,FlowLayout会自行进行换行。 static void FlowLayoutTest(){ Frame frame = new Frame("Flow"); FlowLayout layout = new FlowLayout (FlowLayout.RIGHT, 30, 20); Panel pannel = new Panel(layout); pannel.add(new Button("Button1")); FlowLayout类核心方法结局如下: //构造方法 默认居中对齐 行列间距为5 public FlowLayout(); //align设置对齐模式 /* //左对齐 public static final
android.view.View; import android.view.ViewGroup; /** * 流式布局 * * @author l1k */ public class FlowLayout extends ViewGroup { private static final String TAG = FlowLayout.class.getSimpleName(); private * * @see AlignItems */ private int mAlignItems; public FlowLayout(Context context ) { this(context, null); } public FlowLayout(Context context, AttributeSet attrs) { this(context, attrs, 0); } public FlowLayout(Context context, AttributeSet attrs, int
iOS流布局UICollectionView系列四——自定义FlowLayout进行瀑布流布局 一、引言 前几篇博客从UICollectionView的基础应用到设置UICollectionViewFlowLayout 这种布局无疑在app的应用中更加广泛,商品的展示,书架书目的展示,都会倾向于采用这样的布局方式,当然,通过自定义FlowLayout,我们也很容易实现。 ,UICollectionViewFlowLayout是一个专门用来管理collectionView布局的类,因此,collectionView在进行UI布局前,会通过这个类的对象获取相关的布局信息,FlowLayout 总之,FlowLayout类将每个item的位置等布局信息放在一个数组中,在collectionView布局时,会调用FlowLayout类layoutAttributesForElementsInRect 因此,我们需要重写这个方法,返回我们自定义的配置数组,另外,FlowLayout类在进行布局之前,会调用prepareLayout方法,所以我们可以重写这个方法,在里面对我们的自定义配置数据进行一些设置
iOS流布局UICollectionView系列三——使用FlowLayout进行更灵活布局 一、引言 前面的博客介绍了UICollectionView的相关方法和其协议中的方法,但对布局的管理类 sectionFootersPinToVisibleBounds NS_AVAILABLE_IOS(9_0); 四、动态的配置layout的相关属性UICollectionViewDelegateFlowLayout 上面的方法在创建FlowLayout
为此我花费了大量时间,用官方的FlowLayout替代解决这个问题。 FlowLayout的使用 <android.support.design.internal.FlowLayout android:id="@+id/tfl_content flowLayout, final List<ArticlesBean> beanList) { flowLayout.removeAllViews(); for (int (textView); }); } } 注意: 完整路径名:android.support.design.internal.FlowLayout app 如果使用 ConstraintLayout,则FlowLayout使用:layout_width="match_parent"
默认组件是居中对齐,可以通过FlowLayout(intalign)函数来指定对齐方式,默认情况下是居中(FlowLayout.CENTER)。 FlowLayout为小应用程序(Applet)和面板(Panel)的默认布局管理器。 其构造函数示例为: FlowLayout() //生成一个默认的流式布局,组件在容器里居中,每个组件之间留下5个像素的距离。 FlowLayout(int alinment) //可以设定每行组件的对齐方式。 当容器的大小发生变化时,用FlowLayout管理的组件会发生变化。其变化规律是:组件的大小不变,但是相对位置会发生变化。
文章目录
一、FlowLayout 流式布局
二、FlowLayout 流式布局 API
三、FlowLayout 流式布局代码示例
1、FlowLayout 流式布局左对齐代码示例及执行效果
2、 FlowLayout 流式布局居中对齐代码示例及执行效果
2、FlowLayout 流式布局右对齐代码示例及执行效果
一、FlowLayout 流式布局
----
FlowLayout 流式布局 中 , * 对齐参数的值必须为之一
* FlowLayout.LEFT, FlowLayout.RIGHT,
* FlowLayout.CENTER code>FlowLayout.CENTER, FlowLayout.LEADING,
* or FlowLayout.TRAILING</ flowLayout = new FlowLayout(FlowLayout.LEFT, 10, 10);
// Frame 容器设置流式布局
frame.setLayout
12.5.1 FlowLayout FlowLayout类属于流式布局管理器,使用此种布局方式会使所有的组件像流水一样依次进行排列,FlowLayout类的常量及构造方法如表12.17所示。 行内组件左对齐 public static final int RIGHT 行内组件右对齐 public FlowLayout() 创建一个FlowLayout,居中对齐,默认的水平和垂直间距是5个单位 public FlowLayout(int align) 创建一个FlowLayout,并指定对齐方式,垂直间距默认是5个单位 public FlowLayout(int align,int hgap ,int vgap) 创建一个FlowLayout,并指定对齐方式和垂直间距 表12.7中列举了FlowLayout类的常量及构造方法,接下来通过一个案例来演示FlowLayout布局管理器的使用,如例 8 jFrame.setLayout(new FlowLayout(FlowLayout.CENTER, 30, 3)); 9 JButton jButton = null
文章目录
一、布局管理器引入
二、布局管理器提高程序的适配性
三、LayoutManager 布局管理器类
四、FlowLayout 流式布局
五、FlowLayout 流式布局 API
六、FlowLayout 流式布局代码示例
1、FlowLayout 流式布局左对齐代码示例及执行效果
2、FlowLayout 流式布局居中对齐代码示例及执行效果
2、FlowLayout 流式布局右对齐代码示例及执行效果 遇到障碍 ,
此时折 返回左侧 , 另起一行 , 在第 2 排继续从左到右排列 ;
五、FlowLayout 流式布局 API
----
FlowLayout 构造函数 :
FlowLayout() code>FlowLayout.CENTER, FlowLayout.LEADING,
* or FlowLayout.TRAILING</ flowLayout = new FlowLayout(FlowLayout.LEFT, 10, 10);
// Frame 容器设置流式布局
frame.setLayout
效果: 682657097525172732.jpg 使用方法: <com.aruba.flowlayout.Flowlayout android:id="@+id/fl_test" <TextView android:text="你是我的" android:textSize="18sp" /> </com.aruba.flowlayout.Flowlayout > 直接添加到xml布局中,或者代码中使用adapter Flowlayout flowlayout = findViewById(R.id.fl_test); flowlayout.setFlowAdapter (new Flowlayout.FlowAdapter(this){ @Override View getView(int position, LayoutInflater
java.awt.Toolkit; import java.awt.GridLayout; import java.awt.Panel; import java.awt.Label; import java.awt.FlowLayout flowLayout1 = new FlowLayout(); flowLayout1.setAlignment(FlowLayout.LEFT); label = new Label(); label.setText flowLayout = new FlowLayout(); flowLayout.setAlignment(FlowLayout.LEFT); label1_password = new Label (); label1_password.setText("用户密码:"); panel2 = new Panel(); panel2.setLayout(flowLayout); panel2.add( flowLayout2 = new FlowLayout(); flowLayout2.setHgap(20); panel = new Panel(); panel.setLayout(flowLayout2
效果 第三方库: //依赖: compile 'com.hyman:flowlayout-lib:1.1.2' 布局文件 <com.zhy.view.flowlayout.TagFlowLayout android:id="@+id/id_flowlayout" zhy:max_select="-1" android:layout_width="fill_parent " android:layout_height="wrap_content" android:padding="20dp"> </com.zhy.view.flowlayout.TagFlowLayout "); list.add("Android"); //资源id TagFlowLayout idFlowlayout = findViewById(R.id.id_flowlayout idFlowlayout.setAdapter(new TagAdapter<String>(list) { @Override public View getView(FlowLayout
代码 import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ItemEvent; import java.awt.event.ItemListener this.setVisible(true); this.setLayout(new GridLayout(4,1)); jp1.setLayout(new FlowLayout (FlowLayout.LEFT)); jp2.setLayout(new FlowLayout(FlowLayout.LEFT)); jp3.setLayout(new FlowLayout(FlowLayout.LEFT)); jp4.setLayout(new FlowLayout(FlowLayout.LEFT));
1.流布局管理器: FlowLayout布局管理器中组件的相对位置随窗口大小而变化。 ? ? 下面是流布局演示代码: package cn.hncu.MyJFrame1; import java.awt.FlowLayout; import javax.swing.JButton; import Jbtn2 = new JButton("bbbbb"); // Jbtn2.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 6));//中间对齐, (FlowLayout.RIGHT, 5, 6));//右对齐,水平间隔为5,垂直间隔为6 this.add(Jbtn3,"RIGHT"); Jbtn1 = new JButton ("aaaaa"); // Jbtn1.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 6));//左对齐,水平间隔为5,垂直间隔为6 this.add
都有一个布局管理器对象,当容器需要对某个组件进行定位或判断其大小尺寸时,就会调用其对应的布局管理器,调用Container的setLayout方法改变其布局管理器对象 AWT提供了5种布局管理器类: FlowLayout 不同的布局管理器有不同的风格 FlowLayout布局管理器 FlowLayout是Panel类的默认布局管理器 FlowLayout布局管理器对组件逐行定位,行内从左到右,一行排满后换行 不改变组件大小 ,按组件原有尺寸显示组件,可设置间距,行距以及默认对齐方式(默认是居中) FlowLayout的构造方法 FlowLayout(FlowLayout.RIGHT,20,40):右对齐,组件间水平间距20 ,垂直间距40 FlowLayout(FlowLayout.LEFT):左对齐,水平和垂直间距为缺省值(5) FlowLayout():使用缺省的居中对齐方式,水平和垂直间距为缺省值(5) import Button b2 = new Button("Open"); Button b3 = new Button("Close"); f.setLayout(new FlowLayout
= UICollectionViewFlowLayout(); flowLayout.scrollDirection = UICollectionViewScrollDirection.vertical ; flowLayout.minimumInteritemSpacing = 0; flowLayout.minimumLineSpacing = 0; self.collectionView.collectionViewLayout = flowLayout; self.collectionView.dataSource = self; self.collectionView.delegate = self; ---- OC @property ; flowLayout.minimumInteritemSpacing = 0; flowLayout.minimumLineSpacing = 0; self.collectionView.collectionViewLayout = flowLayout; self.collectionView.dataSource = self; self.collectionView.delegate = self; 代理方法 Swift
布局 流式布局 FlowLayout 从上到下,从左到右 边界布局 东西南北中 网格布局 网格 网格包布局 大小不确定,但是每一个组件的边界都在网格上 卡片布局 点A出A的页面,点B出B的页面。。。 流式布局 Frame f=new Frame("hello world"); f.setLayout(new FlowLayout());//给窗体添加流式布局 增加监听器 import java.awt.Button ; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.TextArea; import java.awt.TextField { public static void main(String[] args) { Frame f=new Frame("hello world."); f.setLayout(new FlowLayout { public static void main(String[] args) { Frame f=new Frame("hello world."); f.setLayout(new FlowLayout
self.collectionView.backgroundColor = UIColor.clear; self.collectionView.isScrollEnabled = true; let flowLayout = UICollectionViewFlowLayout(); flowLayout.scrollDirection = UICollectionViewScrollDirection.horizontal ; flowLayout.minimumInteritemSpacing = 0; flowLayout.minimumLineSpacing = 0; self.collectionView.collectionViewLayout = flowLayout; self.collectionView.isPagingEnabled = true; self.collectionView.dataSource = self