`

android LayoutParams的用法

 
阅读更多
LayoutParams继承于Android.View.ViewGroup.LayoutParams.
    LayoutParams相当于一个Layout的信息包它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可的layoutParams传递进去。
    可以这样去形容LayoutParams,在象棋的棋盘上,每个棋子都占据一个位置,也就是每个棋子都有一个位置的信息,如这个棋子在4行4列,这里的“4行4列”就是棋子的LayoutParams。
LayoutParams类也只是简单的描述了宽高,宽和高都可以设置成三种值
  1,一个确定的值;
  2,FILL_PARENT,即填满(和父容器一样大小);
  3,WRAP_CONTENT,即包裹住组件就好。

在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下动态设置子控件居中,动态用JAVA代码要这样实现:

FrameLayout.LayoutParams lytp = new FrameLayout.LayoutParams(80,LayoutParams.WRAP_CONTENT);
lytp .gravity = Gravity.CENTER;
btn.setLayoutParams(lytp);


2. RelativeLayout下动态设置子控件居中:
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);




分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Android LinearLayout.LayoutParams 使用方法

    在这个主题中,我们将深入探讨如何使用LinearLayout.LayoutParams以及在Java代码中构建布局的方法。 1. **LinearLayout.LayoutParams的基本属性** - `android:layout_width`:定义子视图的宽度,可设置为`wrap_...

    Android View的六种移动方式

    在Android开发中,自定义View是一项常见的任务,它允许开发者根据特定需求创建独特的用户界面元素。本文将深入探讨“Android View...项目中的代码示例将有助于更好地掌握每个方法的用法,以及它们在实际场景中的表现。

    Android使用协调布局CoordinatorLayout的代码例子

    Android使用协调布局CoordinatorLayout的代码例子。用于演示CoordinatorLayout的基本用法,以及悬浮按钮FloatingActionButton、底部弹窗BottomSheetBehavior的使用方法。

    android 采用windowmanager屏蔽home键

    在Android系统中,Home键是默认行为,允许用户随时返回主屏幕或切换到...同时,这种方法可能不适用于所有Android设备和版本,因为Android系统的Home键处理方式可能会有所不同。在不同API级别上进行适配和测试是必要的。

    Android_surfaceView与layout屏幕适配总结

    1. **使用dp单位**:Android推荐使用密度无关像素(dp)作为尺寸单位,而不是像素(px)。dp可以在不同密度的屏幕上保持一致的视觉大小。 2. **支持多种屏幕尺寸**:在res目录下创建不同尺寸的资源文件夹(如layout...

    android - 交换控件(relativelayout)位置,LayoutParams与ObjectAnimator两种方法

    现需要交换两个控件...1、使用LayoutParams改变两个layout的属性,即其相对关系(below等),实现位置的交换,但是并没有交换的动画效果,是“瞬间”交换。 2、使用animation交换控件位置,实现了我需要的动画效果。

    Android 设置最小宽高

    综上所述,Android中可以通过多种方式来设置控件的最小宽高,包括使用`LayoutParams`,调用`View`类的`setMinWidth`和`setMinHeight`方法,以及在XML布局文件中直接设置属性。理解并灵活运用这些方法,可以帮助...

    android实现悬浮窗功能,无需权限

    本文将详细讲解如何在Android系统4.4(API Level 19)及以上版本实现这样的功能,主要涉及的技术点是使用`TYPE_TOAST`窗口类型。 首先,我们需要了解Android中的窗口类型。在Android中,每个应用都运行在一个独立的...

    android桌面悬浮窗

    在Android系统中,桌面悬浮窗是一种非常实用的功能,它可以在用户使用其他应用程序的同时显示重要的信息或者提供便捷的操作入口。本文将深入探讨如何实现一个具备自由拖动和智能隐藏功能的Android桌面悬浮窗。 首先...

    Android中如何禁止屏幕休眠和锁屏

    禁止屏幕休眠和锁屏可以使用三种方法:使用 WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON、使用 PowerManager.WakeLock 和禁用系统的锁频功能。每种方法都有其优缺,需要根据实际情况选择合适的方法。

    Android-Android开发使用PupopWindow在指定View的上下左右动态显示菜单列表

    2. 动画效果:使用`setAnimationStyle()`方法可以设置弹出和消失时的动画。 3. 避免遮挡输入框:确保PopupWindow不会覆盖到EditText等可输入控件,防止键盘弹出时无法操作。 通过以上步骤,我们可以成功地在Android...

    Android 显示/隐藏 布局

    本主题聚焦于如何在Android应用中不使用`visibility`属性来显示或隐藏布局。`visibility`属性虽然常见,但有时开发者可能需要更灵活的控制方式。以下是一些替代方法及其详细解释: 1. **使用ViewStub**: `ViewStub`...

    Xamarin.Android 悬浮框(背景半透明遮挡)

    在Xamarin.Android中,我们可以使用`Android.Views.WindowManager`类来获取这个服务,并通过它来添加我们的悬浮框。 1. **获取WindowManager服务**: 在Activity的`OnCreate`方法中,我们可以通过`...

    android伸缩式悬浮窗

    对于悬浮窗,我们需要使用`LayoutParams.TYPE_PHONE`或`LayoutParams.TYPE_SYSTEM_ALERT`类型的参数,以确保它在其他应用之上显示。同时,也需要设置窗口的宽度、高度、x、y坐标等属性。例如: ```java ...

    Android中使用自定义ViewGroup的总结

    最后,在CustomLinearLayout类中,我们需要覆盖`generateLayoutParams(AttributeSet attrs)`和`checkLayoutParams(ViewGroup.LayoutParams p)`方法,以确保系统使用我们的自定义LayoutParams: ```java public ...

    android 软键盘弹出相关的坑之解决方法

    如果希望保持整个界面不被键盘挤压,可以使用`android:windowSoftInputMode="adjustResize"`,这样布局会自动调整大小适应键盘的显示。 **2. 全屏模式下的问题与解决方案** 全屏模式下,由于没有状态栏和导航栏,...

    android studio VideoView本地视频播放.zip

    本教程将详细讲解如何在Android Studio中使用VideoView来播放本地视频。 首先,我们需要理解VideoView的基本结构和功能。VideoView继承自SurfaceView,它提供了播放视频的能力,支持多种视频格式,如MP4、3GP等。...

    Android ScrollView向上滑动控件顶部悬浮效果实现

    可以使用OnScrollChangeListener接口或者自定义ViewGroup的onInterceptTouchEvent()方法来捕获滚动事件。 ```java scrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() { @Override public ...

    Android悬浮窗实现 使用WindowManager Demo

    本教程将深入讲解如何使用`WindowManager`服务来创建和管理Android悬浮窗,并通过一个简单的Demo——WindowManagerDemo来展示其实现过程。 首先,我们要理解`WindowManager`是Android系统提供的一个接口,它允许...

    Android 悬浮Activity ( Dialog风格)

    接着,需要在Activity的`onCreate()`方法中设置窗口属性,包括尺寸、位置以及是否允许用户通过点击屏幕其他区域关闭Activity。 ```java @Override protected void onCreate(Bundle savedInstanceState) { super....

Global site tag (gtag.js) - Google Analytics