Android:线性布局介绍,线性布局weight属性,线性布局微调参数gravity,线性布局divider

2023-11-14

       

  

LinearLayout:线性布局

一、线性布局介绍

新建一个工程

 然后我们默认的布局,是相对布局,

 相对布局的意思是我的控件可以在里面随意放置

 那如果把这个RelativeLayout 改了呢?

不用这相对布局,而是用线性布局,

我们把代码都删掉

然后直接把 RelativeLayout 改成        LinearLayout

 现在我这个布局已经好了

我们再往里面添加东西,发现只能在一条横线上添加

如果我一个横线放满了,放下一排可以吗?

不可以

 这就是线性布局,之能在横线上存放。

那我现在希望变成竖线存放怎么办呢?

这就涉及到了  LinearLayout的属性  orientation

orientation:布局中组件的排列方式,有horizontal(水平,默认),vertical(竖直)两种方式

      

  我们修改一下代码

然后现在我们想把      hello  world 右面放也不行,只能跑到后面来

 这就是我们说的线性布局,要么是横线,要么是竖线,只有这两种情况

      

二、线性布局weight属性

该属性是用来等比例划分区域,

最简单的用法:要等比划分,分谁,谁为0,weight按比例即可

    

  我们开始的代码

在里面来一个线性布局 ,

因为它的父控件是一个相对布局,所以可以用        android:layout_centerInParent="true"

 运行一下

 框架

 现在的代码,结构

默认是水平方向上排布控件

加一句    android:orientation="horizontal"

 

 运行结果

 然后把    android:layout_height="35dp"      改成     android:layout_height="70dp"

然后再加一句              android:orientation="vertical"     把他切成两部分

 

运行一下

 同样的右面的也加上EditText

 运行一下

 他会随着输入的增长而增长

 三、线性布局微调参数gravity

gravity:控制组件所包含的子元素的对齐方式,可多个组合,如(left|buttom)

Layout_gravity:控制该组件在父容器里的对齐方式

    

   线性布局如何微调子控件的位置,现在我们想让账号和密码居中

 运行一下,在竖直方向上居中了。但没有在水平方向上居中

 然后用一个管道可以继续来         android:gravity="center|center_horizontal"

 运行结果

 现在完整的代码

 我们观察一下textview 的大小有多大,给他来个颜色

加上    android:background="#778899"            android:background="#223344"

运行一下

         说明刚才我们够居中了,android:gravity="centerl"      已经能让“账号”     “密码”居中了

把android:gravity="center|center_horizontal"       改成      android:gravity="center"

        只是水平方向上的大小,没有充满父控件

那把android:layout_width="wrap_content"        改成       android:layout_width="match_parent"

 运行一下

( 然后把密码的颜色也改成灰色)

如果我们在加一个id号        第48行

 

 

 运行一下

 然后把        android:layout_height="70dp"    改成        android:layout_height="100dp"

在加上一个

 <EditText
                 android:layout_weight="1"
                 android:layout_width="wrap_content"
                 android:layout_height="0dp"               
                 />    

 运行一下

 可以把颜色都去掉,

再把        android:layout_width="wrap_content"       改成 android:layout_width="match_parent"

 可以加个背景

 然后把

换成

 运行一下

如果你感觉屏幕太方块了 

把        android:layout_width="match_parent" 改成        android:layout_width="400dp"        第9行

 运行一下

     

四、线性布局divider

该属性用于为LinearLayout设置分割线图片,通过showDividers来设置分割线的所在位置,有四个可选值none,middle,begining,end;当然你还可以通过

        divider 为LinearLayout设置分割线的图片

        showDividers 设置分割线所在的位置,有四个可选值:none,middle,begining,end

        dividerPadding   设置分割线的padding

先给res   下面的   drawable

 

然后选择shape

系统分配的代码

我们选择它是一条线,

然后再加上颜色            <stroke android:color="#000000"/>

比如我现在要给 “账号”        “密码”        “ID号”   下面画一条线

加上一句        android:divider="@drawable/fenge"        第20行

 运行结果

id下面没有线,android:showDividers="middle"        改成        android:showDividers="middle|end"

 运行结果

 如果后面也想加个横线

 运行结果

 现在完整的代码

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:线性布局介绍,线性布局weight属性,线性布局微调参数gravity,线性布局divider 的相关文章

  • 保存用户可以访问的 Flutter Android 应用程序中的文本文件

    我在 Flutter 中开发的 Android 应用程序的用户应该能够将一些数据保存 导出 到文本文件中 用户应该能够使用其他应用程序 包括文件管理器 在其 Android 设备上找到并访问此文件 我想 final directory aw
  • Espresso - 检查使用按钮按下意图打开哪个活动?

    是否可以跟踪按下某个按钮后打开了哪个 Activity 我有一个测试 其中当单击 按下按钮时 it 向服务器发送请求 直到发送请求时 它打开一个活动 验证是否执行成功在测试中 我需要检查打开的 Activity 是什么 我的测试示例 检查
  • ACTION_VIEW 的 Intent.createChooser 仅显示默认浏览器

    我正在尝试使用 Intent createChooser 显示应用程序选择器对话框 该对话框将列出用户手机中所有可用的网络浏览器 我正在使用下面的代码 Intent browserIntent new Intent Intent ACTIO
  • 如何改变android中menuItem的背景颜色?

    我正在以编程方式将菜单项添加到菜单中 我想在选择特定项目时添加背景颜色 如何为 menuItem 添加背景 您的回答将不胜感激 虽然其他答案提供了更改样式 这会影响all菜单项 据我了解 需要更改一个菜单项 我建议你使用android ac
  • android 谷歌+登录定制

    我正在创建一个 Android 应用程序 现在我正在实现社交网络登录 Facebook 按钮很好 但 google 按钮的语言与 Facebook 不同 另外 它只说 登录 我想让它说 用谷歌登录 我是 android 编程的新手 看到我需
  • 无法合并 Dex - Android Studio 3.0

    当我在稳定频道中将 Android Studio 更新到 3 0 并运行该项目时 我开始收到以下错误 Error Execution failed for task app transformDexArchiveWithExternalLi
  • 将标题设置为操作栏时出现空指针异常

    Error Caused by java lang NullPointerException Attempt to invoke virtual method void android app ActionBar setTitle java
  • OpenCV InRange 参数

    我在 Android 上使用 OpenCV 来实时查找特定颜色的圆圈 我的第一步是仅保留与我正在寻找的定义颜色相对应的像素 在本例中为红色或绿色 示例图像 https i stack imgur com CIozU jpg 为此 我正在使用
  • 6:需要显示BuyFlow UI

    There is a problem when i am click on payWithGoogle Button I am implementing Google Pay in my Android Application and wh
  • 如何将单选按钮状态保存到已保存/共享首选项?

    我可以在保存的首选项中保存字符串 但很难保存单选按钮 public class PersonalDetailsf extends Activity private SharedPreferences sharedPreferences pr
  • 如何在 Android 上的 HttpPost 中发送 unicode 字符

    我试图在我的应用程序中允许多语言支持 这会发出 HTTP post 来上传新消息 我需要做什么才能支持日语和其他非拉丁语语言 我的代码目前看起来像这样 note the msg string is a JSON message by the
  • Facebook LoginActivity 未正确显示

    我有一个使用 Facebook 登录的应用程序 我有 FacebookSDK 并且使用 com facebook LoginActivity 问题是 在 10 英寸平板电脑上 当显示软键盘时 活动无法正确显示 我使用的是 Samsung G
  • 手动启用时 Firebase Crashlytics 不报告崩溃

    Crashlytics 在没有选择加入报告的情况下也能正常工作 但一旦我根据规定设置了选择加入报告 它就会停止报告任何内容tutorial https firebase google com docs crashlytics customi
  • 无法在 Android 模拟器中安装 apk

    我正在尝试通过 adb shell 在 ICS 模拟器中安装 apk 从一个站点下载 但出现以下错误 失败 INSTALL FAILED UID CHANGED 可能是什么问题 只需 rm r 有问题的数据目录即可 如果您在安装时遇到此错误
  • 带有空白白屏的 WebView

    我在 DialogFragment 中有一个 webview 它使用以下方式显示文档和 PDF它可以进行几次尝试 但如果用户尝试频繁打开和关闭对话框 webview 将显示空白屏幕 我已经尝试了所有的线程link1 https stacko
  • Google Android Drive api 在已安装版本上登录失败

    我开发了一个使用 GoogleDrive api 的 Android 应用程序 当处于调试状态或运行调试版本时 应用程序 工作正常 并正确验证附加的谷歌帐户 等 当我构建发行版本时 使用我的签名密钥 并且 安装apk文件 当我运行时 Goo
  • 按名称查找视图

    是否可以通过名称而不是 id 来查找视图 findViewById R id someView 但我想做这样的事情 findViewByName someView 在处理 xml 时 您必须通过标识符查找视图 但是您可以使用以下方式查找标识
  • Jetpack Compose 部分或开放侧边框

    我正在尝试绘制部分或一侧开放的矩形圆形边框以实现此效果 玩了一下之后我得到了这个 这是通过以下方式完成的 RoundedCornerShape topStartPercent 50 bottomStartPercent 50 start R
  • Android:获取最新意图

    如何获取发送到活动的最后一个意图 的文档onNewIntent 建议我需要做这样的事情 class MyActivity public void onNewIntent Intent intent setIntent intent reac
  • 修改 ADW Android 启动器?

    我想更改和修改开源 ADW 启动器 启动器可在此处获取 https github com AnderWeb android packages apps Launcher https github com AnderWeb android p

随机推荐