最近为各个布局下的水平垂直居中搞烦了。因为是动态构建的布局,一些在XML里面很好写的居中,动态JAVA代码里不知道么样实现,今天终于再了解了其中的意思。
首先第一点也是最先应该了解的:
setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
这一句话其实是子对父的,也就是父布局下的子控件要设置这句话,并且由于布局很多,也不同,虽然都继承至ViewGroup但是各个布局的局性和方法有很大的不同。很显然上面这句应该这样写才算准确:
setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT,
TableRow.LayoutParams.FILL_PARENT));
这表示这个子控件的父布局是一个TableRow , 这样的LayoutParams 太多,所以应明确指明。下面分别说下两个常用到布局:
1. FrameLayout下动态设置子控件居中:
在XML文件中只用设置这个属性:
动态用JAVA代码要这样实现:
FrameLayout.LayoutParams btnLytp = new FrameLayout.LayoutParams(80,LayoutParams.WRAP_CONTENT);
btnLytp.gravity = Gravity.CENTER;
btnMemo.setLayoutParams(btnLytp);
2. RelativeLayout下动态设置子控件居中:
在XML下配置RelativeLayout非常简单,设置对应属性就好。
JAVA代码动态实现则用到这个方法了:
用法:
RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE);
lp.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
btn1.setLayoutParams(lp);
- 大小: 78.6 KB
- 大小: 54.1 KB
分享到:
相关推荐
在这个主题中,我们将深入探讨如何使用LinearLayout.LayoutParams以及在Java代码中构建布局的方法。 1. **LinearLayout.LayoutParams的基本属性** - `android:layout_width`:定义子视图的宽度,可设置为`wrap_...
Android使用协调布局CoordinatorLayout的代码例子。用于演示CoordinatorLayout的基本用法,以及悬浮按钮FloatingActionButton、底部弹窗BottomSheetBehavior的使用方法。
在Android开发中,布局管理是应用界面设计...这些方法提供了一种更为动态和灵活的方式来控制Android布局的可见性,使得应用的交互更加丰富和有趣。在实际开发中,应根据应用场景选择合适的方法,以实现最佳的用户体验。
在Android开发中,自定义布局是提升应用独特性和用户体验的重要手段。`CircleLayout`就是一种特殊的自定义布局,它使得内部的子视图按照圆形排列,增强了界面的视觉效果。本篇文章将深入探讨如何实现这样一个自定义...
在Android开发中,流式布局(Flow Layout)是一种常见的布局方式,它允许子视图(views)根据屏幕尺寸自适应地排列,就像水在容器中自然流动一样。本篇文章将详细探讨如何在Android中实现一个简单的流式布局,并提供...
Android提供了两种主要的布局创建方式:在XML文件中创建和在Java代码中动态创建。下面将详细阐述这两种方法的特点、优势以及适用场景。 1. XML文件中创建布局 XML(Extensible Markup Language)是一种用于标记...
布局定义了应用中各个组件的位置和交互方式,对于用户体验有着直接影响。本教程将深入讲解如何在Java代码中直接编写布局以及如何引入XML布局。这两种方法各有优缺点,适用于不同的场景。 首先,让我们探讨在Java中...
在Android开发中,布局属性是构建用户界面的关键组成部分。...通过不断实践和探索,开发者能够掌握更多高级用法,如使用`android:onClick`实现点击事件,或者利用`android:visibility`控制视图的可见性等。
如果布局是在Fragment中,可以尝试在软键盘弹出时使用`FragmentTransaction`的`setCustomAnimations()`方法,配合动画效果,使内容区域平滑地上移。 6. **使用 CoordinatorLayout 和 AppBarLayout**: 对于使用了...
`CodeUIDemo`这个项目的源代码可能包含了这些概念的实例,通过分析和学习这些代码,开发者能够掌握使用Java或Kotlin动态创建Android界面布局的方法,进一步提升应用开发技能。 总之,Android界面布局的代码实现涉及...
布局是构成Android用户界面的基础,它们定义了屏幕上元素的排列方式和相互关系。常见的布局有LinearLayout、RelativeLayout、ConstraintLayout等。动态添加控件通常涉及在这些布局中进行操作。 1. **动态添加控件**...
1. **自定义ViewGroup**:FlowLayout继承自ViewGroup,它是Android布局系统的基础类。开发者需要重写`onMeasure()`和`onLayout()`方法来实现自定义布局的行为。 2. **测量(Measurement)**:在`onMeasure()`方法中,...
在Android开发中,实现“Android自定义动态布局—多图片上传”是一项常见的需求,尤其是在社交应用、电商应用等场景中。下面将详细讲解这个过程,包括如何使用Java代码动态创建布局以及实现多图片上传功能。 一、...
首先,我们要明白Android中的布局是XML文件,它们定义了屏幕上的视图及其排列方式。在"android Activity布局初步(二)- 嵌套布局"这篇博文中,作者可能介绍了如何在一个布局文件中包含另一个布局,从而实现视图的...
6. **添加组件到布局**:将组件添加到布局容器中,使用布局容器的`addView()`方法,传入组件实例和(可选的)LayoutParams对象。 7. **管理布局**:根据需要,你还可以在运行时动态地添加、删除或更改布局中的组件...
本篇文章将深入探讨如何通过代码实现Android布局,以`login`为例,我们将讨论如何创建一个登录界面。 一、基础概念 在Android中,布局通常由XML文件定义,存放在`res/layout`目录下。然而,有时我们可能需要在运行...
在Android开发中,布局(Layout)是构建用户界面的核心元素,它定义了应用程序屏幕上各个组件的排列方式和相互关系。本篇文章将深入探讨Android布局的相关知识点,帮助开发者更好地理解和运用。 首先,Android提供...
在Android开发中,动态生成布局是一项常见的需求,特别是在创建复杂且可自定义的用户界面时。动态布局允许开发者在程序运行时根据需要创建、修改或删除视图元素,而不是在XML布局文件中硬编码。这样的灵活性可以提高...
首先,我们要理解`ViewGroup`是Android布局系统的基础组件,它负责管理子视图(Views)的位置和大小,并处理它们之间的交互。在自定义`ViewGroup`时,我们需要重写以下几个关键方法: 1. **onMeasure()**: 这个方法...
在Android开发中,流式布局(FlowLayout)是一种常见的布局方式,它允许子视图(View)按照特定顺序从左到右排列,当一行填满时自动换行。这种布局在设计如网格、目录或者卡片展示等场景时非常实用。在Android原生库...