gridlayout用法(gridlayout)

http://www.itjxue.com  2023-02-13 20:16  来源:未知  点击次数: 

Java的layout用法?最好有代码举例说明

swing组件有自己默认的布局方式。JFrame是BorderLayout,JPanel是FlowLayout。如果想把JPanel换成其它布局方式,做成BorderLayout可以这样做: JPanel jp = new JPanel(new BorderLayout());,做成GridLayout可以这样做: JPanel jp = new JPanel(new GridLayout(2,1,1,1));。其中FlowLayout, GridLayout和BorderLayout这三种布局方式是最常用的,其它的布局如BoxLayout,CardLayout用的相对较少,请参考相关文档

java中描述常见的几种布局特点及用法

Java的GUI界面定义是由AWT类包和Swing类包来完成的,对于布局的管理交给专门的布局管理器类(LayoutManager)来完成。

Java中的布局管理器类有:FlowLayout、BorderLayout、GridLayout、GridBagLayout等,

下面是他们的一些特点:

CardLayout 将组件象卡片一样放置在容器中,在某一时刻只有一个组件可见

FlowLayout 将组件按从左到右而后从上到下的顺序依次排列,一行不能放完则折到下一行继续放置

GridLayout 形似一个无框线的表格,每个单元格中放一个组件

BorderLayout 将组件按东、南、西、北、中五个区域放置,每个方向最多只能放置一个组件

GridBagLayout 非常灵活,可指定组件放置的具体位置及占用单元格数目

BoxLayout 就像整齐放置的一行或者一列盒子,每个盒子中一个组件

SpringLayout 根据一组约束条件放置子组件

ScrollPaneLayout 专用于JScrollPane,含一个Viewport,一个行头、一个列头、两个滚动条和四个角组件

OverlayLayout 以彼此覆盖的形式叠置组件

ViewportLayout JViewport的默认布局管理器

gridlayout用法

我晕!这种问题不要拿到这里来了。

学java必备API文档,查一下全有了。

JAVA的图形界面的布局设计有哪些,各种布局的用法。

基本有五种

BorderLayout 边界布局管理器

将容器分为东、南、西、北、中五个区域

分别用BorderLayout.SOUTH BorderLayout.NORTH BorderLayout.EAST BorderLayout.WEST BorderLayout.CENTER

FlowLayout 流式布局管理器

按照组件的添加顺序将组件从左到右放置在容器中。允许左对齐、居中对齐、或右对齐

GridLayout网格布局管理器

将容器分割成多行多列 按照组件添加的顺序一次讲组件从左到右放置

GridBagLayout网格包布局管理器

允许组件中各个组件的大小各不相同

CardLayout 卡片布局管理器

将界面看成一些列的卡片,每一个卡片都有一个容器,任何时候只有一张卡片时可见的

构造方法有CradLayout()和CradLayout(int hgap,int vgap)

参数hgap表示卡片和容器的左右边界之间的间隙,参数vgap表示卡片和容器的上下边界之间的间隙

RecyclerView

RecyclerView 是Android一个更强大的控件,其不仅可以实现和ListView同样的效果,还有优化了ListView中的各种不足。其可以实现数据纵向滚动,也可以实现横向滚动(ListView做不到横向滚动)。接下来讲解RecyclerView的用法。

因为 RecyclerView 属于新增的控件,Android将RecyclerView定义在support库里。若要使用RecyclerView,第一步是要在 build.gradle 中添加对应的依赖库。

在 app/build.gradle 中的 dependencies闭包 添加以下内容:

然后点击顶部的Sync Now进行同步

由于 RecyclerView 不是内置在系统SDK中,需要把其完整的包名路径写出来

创建ImageView来显示水果图片,TextView来显示水果名字。

为 RecyclerView 新增适配器 FruitAdapter ,并让其继承于 RecyclerView.Adapter ,把泛型指定为 FruitAdapter.ViewHolder 。

LayoutManager 用于指定RecyclerView的布局方式。 LinearLayoutManager 指的是线性布局。

运行效果:

把LinearLayout改成垂直排列,因为水果名字长度不一样,把宽度改为100dp。

ImageView和TextView都改为水平居中

通过调用 setOrientation() 把布局的排列方向改为水平排列。

得益于RecyclerView的设计,我们可以通过LayoutManager实现各种不同的排列方式的布局。

运行结果:

除了 LinearLayoutManager , RecyclerView 还提供了 GridLayoutManager(网格布局) 和 StaggeredGridLayoutManager(瀑布流布局)

GridLayoutManager(网格布局)

修改 MainActivity.java ,把

换成

GridLayoutManager (Context context, int spanCount)

运行结果:

StaggeredGridLayoutManager(瀑布流布局)

把LinearLayout的宽度设为 match_parent 是因为瀑布流的宽度是 根据布局的列数来自动适配的,而不是固定值 。(GridLayoutManager也是 根据布局的列数来自动适配的 )

StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL);

StaggeredGridLayoutManager传入2个参数,第一个是布局的列数,第二个是布局的排列方向。

random.nextInt(20)+1 产生1-20的随机数

运行效果:

上图是GridLayoutManager,下图是StaggeredGridLayout。

当从显示效果来看,已经一目了然。

GridLayoutManager是会固定高度的,所以会留下很多空白区域。

相反,StaggeredGridLayout并不会固定高度,以至于就算子项的高度不一致,下一行的会自动靠拢上一行。

修改ViewHolder,添加fruitView变量来保存子项最外层布局的实例。

运行效果:

四种常用布局使用方法

一、 FrameLayout(帧布局):

显示特点:所有的子控件默认显示在FrameLayout的左上角,会重叠在一起显示。

常用属性:

layout_gravity(设置给子控件,调整控件在容器内的重心) 还可配合layout_marginTop,layout_marginLeft属性指定组件位置

常用值:

left(左)、 right(右)、

top(上)、 bottom(下)、

center(中心)、 center_vertical(竖向中心)

center_horizontal(横向中心)

二、 LinearLayout(线性布局):

显示特点:所有子控件按照横向或者竖向依次排列,android:orientation="vertical"(竖向),android:orientation="horizontal"(横向)。

常用属性:

①gravity(控件本身内的重心位置)

常用值:

enter_vertical(竖向中心)、center_horizontal(横向中心)

注意的是属性还可以这样使用 android:gravity="bottom|center"表示底

部中心

②layout_gravity(控件在父容器内的重心位置)

常用值:

left(左)、right(右)、top(上)、bottom(下)、center(中心)、

enter_vertical(竖向中心)、center_horizontal(横向中心)

③layout_weight(权重值)

子控件的用法: android:layout_weight="1" 多个控件同时使用,可以实现平分的效果

④ weightSum(权重总和)

三、 RelativeLayout(相对布局)

显示特点:和LinearLayout布局相似,所有子控件默认显示在RelativeLayout的左上角

常用属性:

①在指定控件的哪一边:(注意:这些属性都需要有一个指定的id)

layout_toRightOf 在指定控件的右边

layout_toLeftOf 在指定控件的左边

layout_above 在指定控件的上边

layout_below 在指定控件的下边子控件对齐关系

常见的效果:

②指定和那个控件的对齐方式(注意:这些属性都需要有一个指定的id)

layout_alignRight 与指定控件右对齐

layout_alignLeft 与指定控件左对齐

layout_alignTop 与指定控件上对齐

常见的效果:

③子控件与父容器间对齐关系(这些属性的值为true或false)

layout_centerInParent 与父容器中间对齐 pairunte

layout_centerVertical 与父容器竖向中心对齐

layout_centerHorizontal 与父容器横向中心对齐

layout_alignParentLeft 与父容器左边对齐

layout_alignParentTop 与父容器上边对齐

layout_alignParentRight 与父容器右边对齐

layout_alignParentBottom 与父容器下边对齐

四、 GridLayout(网格布局)

显示特点:所有子控件默认在GridLayout中横向依次排列,当只等每行的列数时,到达指定列数

会自动换行显示。

常用属性:

layout_column 在网格的第几列

layout_row 在网格的第几行

layout_columnSpan 跨列

layout_rowSpan 跨行

layout_gravity 在一个网格中的重心位置

columnCount 每行列总数

常见的效果:

总结:当某些控件在水平或垂直方向上依次排列时使用线性布局。 当控件之间的位置关系特别复杂时使用相对布局。相对布局可以指定控件相对某个控件的位置及和谁对齐。 帧布局:TODO 网格布局:当空间排列成网格状时使用网格布局。

(责任编辑:IT教学网)

更多

推荐其它软件文章