如何在android中垂直均匀分布按钮/布局?

2024-02-08

我有一个类似于计算器的布局,每行 4 个按钮,大约有 5 行。我使用以下方法创建了每一行LinearLayout。我已经成功地通过使用完全填充了每行的宽度android:layout_weight="1"在每个按钮中LinearLayout。但我不知道如何以这种方式填充垂直空间。五行后,底部剩余空间可容纳普通 XDPI 屏幕(Nexus 4)

<LinearLayout
        android:id="@+id/first_row"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/entry">

    <Button
            android:id="@+id/seven"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="7"
            android:textColor="@color/Blue_ICS"
            android:textSize="@dimen/button_text_size"
            />

    <Button
            android:id="@+id/eight"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="8"
            android:textColor="@color/Blue_ICS"

            android:textSize="@dimen/button_text_size"/>

    <Button
            android:id="@+id/nine"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="9"

            android:textColor="@color/Blue_ICS"
            android:textSize="@dimen/button_text_size"/>

    <Button
            android:id="@+id/plus"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:text="+"
            android:textColor="@color/Blue_ICS"
            android:textSize="@dimen/button_text_size"/>
</LinearLayout>

布局太长,所以我在这里只分享第一行的代码,其余行也相同。


你应该使用TableLayout,将所有 LinearLayout 替换为 TableRow。属性stretchColumns允许您使所有列具有相同的宽度,而无需使用权重。这样您就可以使用权重来处理 TableRow 的高度。

在下面的示例中,我什至添加了一些空间(空的 LinearLayout)来显示结果,就像计算器屏幕一样。我希望这就是您正在寻找的! (你必须改变id)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/outerLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<LinearLayout
    android:id="@+id/screenLayout"
    android:layout_width="fill_parent"
    android:layout_height="150dp"
    android:orientation="vertical"></LinearLayout>

<TableLayout
    android:id="@+id/myLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@+id/screenLayout"
    android:stretchColumns="*" >

    <TableRow
        android:id="@+id/first_row"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

        <Button
            android:id="@+id/seven"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="7" />

        <Button
            android:id="@+id/eight"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="8" />

        <Button
            android:id="@+id/nine"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="9" />

        <Button
            android:id="@+id/plus"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="+" />
    </TableRow>

    <TableRow
        android:id="@+id/first_row"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

        <Button
            android:id="@+id/seven"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="4" />

        <Button
            android:id="@+id/eight"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="5" />

        <Button
            android:id="@+id/nine"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="6" />

        <Button
            android:id="@+id/plus"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="-" />
    </TableRow>

    <TableRow
        android:id="@+id/first_row"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

        <Button
            android:id="@+id/seven"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="1" />

        <Button
            android:id="@+id/eight"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="2" />

        <Button
            android:id="@+id/nine"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="3" />

        <Button
            android:id="@+id/plus"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="*" />
    </TableRow>

    <TableRow
        android:id="@+id/first_row"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" >

        <Button
            android:id="@+id/seven"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="0" />

        <Button
            android:id="@+id/eight"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="," />

        <Button
            android:id="@+id/nine"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="/" />

        <Button
            android:id="@+id/plus"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:text="=" />
    </TableRow>
</TableLayout>

</RelativeLayout>

Result:

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

如何在android中垂直均匀分布按钮/布局? 的相关文章

  • 如何访问 Android 心率传感器原始数据? (反射光,不是心跳)

    心率传感器上的 android sdk 仅返回计算出的 bpm 我对此不感兴趣 我需要访问 Android 心率传感器原始数据 例如就反射值的强度而言将会很大 因为心率传感器基本上使用 LED 并测量随时间变化的反射率 如果可能 访问由任何
  • 用于 Kotlin 中单元测试的 BuildConfigField 模拟

    我正在尝试尽可能多地涵盖Kotlin Android 库我遇到了有关自定义 BuildConfig 变量的问题 更广为人知的是buildConfigField 我想模拟这个变量来测试两者true and false values 从 Gra
  • Android ToggleButton 始终检查

    如果切换按钮处于选中或取消选中状态 我想存储在 SharedPreferences 中 toggle setOnCheckedChangeListener new OnCheckedChangeListener public void on
  • Android中将JSON数据存储到本地数据库

    好的 我创建了一个应用程序 它使用 JSON 从我的服务器检索数据 现在我想将检索到的数据存储在手机的本地存储 数据库中 我该怎么做 我是android编程新手 这是我从服务器收到的 JSON messages id 44 issender
  • 虚拟回调接口

    在 Eclipse 为您创建的来自 Google 的示例主从流代码中 片段中包含以下内容 private Callbacks mCallbacks sDummyCallbacks public interface Callbacks pub
  • 无法在 Android Studio 中导出签名的 APK

    当我使用keytool list keystore path to keyfile jks并提供我的密码 我可以看到那里的条目 但是当我在尝试使用相同的密码生成签名的 APK 时使用相同的密码时 我收到错误 无法加载密钥库 密钥库被篡改 或
  • 写入 Android UI Automator 输出控制台

    我正在 Android UI Automator 上编写一个小包装器 通常我们可以在控制台看到测试用例的状态 我可以访问它并添加我自己的消息吗 我努力了System out println 但这没有用 有什么办法可以做到这一点吗 您可以使用
  • 如何在Android中的DataBinding的ViewModel类中获取R.string

    我目前正在使用databinding对于我的 Android 应用程序项目 我想设置error留言在我的CustomTextView from R string txtOldPassWordError并从另一个名为的类中进行设置ViewMo
  • 如何使用 Google 的 GithubBrowserSample 方法在片段之间共享视图模型?

    我对 Android 架构组件的使用非常陌生 因此我决定使用 GithubBrowserSample 来构建我的应用程序来实现我的许多用例 但我有一个问题 我不知道使用这种方法在片段之间共享视图模型的正确方法是什么 我想共享视图模型 因为我
  • 什么是 Android 测试协调器?

    谷歌最近发布了Android测试支持库1 0 读完后overview https android developers googleblog com 2017 07 android testing support library 10 is
  • 在光标所在行强制关闭!

    嘿 我正在尝试创建一个应用程序来查找存储在 SQlite 数据库中的 GPS 数据 但我面临一个问题 我构建了一个 DbAdapter 类来创建数据库 现在我尝试使用以下函数从另一个类获取所有数据上的光标 public Cursor fet
  • FragmentActivity 无法解析为类型

    我正在尝试来自的应用程序这个博客 http android developers blogspot com 2011 02 android 30 fragments api html 在延长的同时FragmentActivity 我收到以下
  • 如何在android中的谷歌地图上聚焦标记

    我只是想知道我们是否可以关注 Android 应用程序中添加的标记 如果是 怎么办 或者有没有其他方法可以完成这项任务 可以说我使用下面的代码添加了一个标记 map addMarker new MarkerOptions title tit
  • 如何将 JSON 数据从 Android 发送到 php url?

    我想将登录信息从我的应用程序发送到 php url 因为这我的应用程序将崩溃 任何人都可以帮助我解决这个问题 这是我的服务器登录方法 我想将数据发送到此登录方法 Method public method login Parameters 3
  • Android 的 Intent 和 Parcelable 对象

    为什么我需要打包我的对象 即使我只需将其发送到同一任务的另一个线程 实际上 我需要打开一个甚至可以在同一线程 主线程 上运行的活动 换句话说 为什么 Google 不提供一个 startActivity 版本 它采用通用对象广告参数而不是捆
  • 文本视图不显示全文

    我正在使用 TableLayout 和 TableRow 创建一个简单的布局 其中包含两个 TextView 这是代码的一部分
  • 了解应用程序在后台时何时收到 Firebase 消息

    我知道这个标题有同样的问题 但不幸的是它没有得到正确的回答 它被接受了 here https stackoverflow com questions 37711082 how to handle notification when app
  • 通过 Gradle 和 Android Studio 构建和运行应用程序比通过 Eclipse 慢

    我有一个多项目 10 个模块 每次构建大约需要 20 30 秒 当我在 Android Studio 中按 运行 时 每次都必须等待才能重建应用程序 这非常慢 是否可以在 Android Studio 中自动化构建过程 或者您对如何加快此过
  • Android ScrollView,检查当前是否滚动

    有没有办法检查标准 ScrollView 当前是否正在滚动 方向是向上还是向下并不重要 我只需要检查它当前是否正在滚动 ScrollView当前形式不提供用于检测滚动事件的回调 有两种解决方法可用 1 Use a ListView并实施On
  • 如何正确处理 ListView 内的 Android EditText 输入?

    在我的应用程序中 我有一个在 a 中添加 删除 编辑记录的活动SortedMap 该活动作为以下活动的延伸实施ListActivity 我已经实现了自定义ArrayAdapter对于收藏品 Every ListView项目 对应于基础记录

随机推荐

  • 使用 mongoimport 导入超过 1 个 json 文件

    我是新来的mongodb并想了解如何导入json文件从一台服务器传输到另一台服务器 我尝试了以下命令mongoimport d test c bik check json它对我来说效果很好 现在我想知道什么时候有多个json我如何一次性导入
  • 页面加载时 Twitter 引导程序进度条动画

    我有一个带有几个引导进度条的页面 最初设置它们的值效果很好 虽然我希望进度条在用户打开页面时动画 转换到其特定状态 当你点击其中一个栏时 这个 JS 工作正常 我在酒吧的 onload 事件中需要类似的东西 但 onload 事件不适用于
  • 无法让社交媒体共享按钮在内联列表中排列

    在我的一生中 我无法让这些社交媒体分享按钮与我的内嵌列表对齐 我差点就拥有了它vertical align top on the li 但 Chrome 不喜欢这样 页面可以在这里看到 http 206 72 114 49 sharelin
  • 在缓存中找不到元素 - 也许页面自从在 Selenium Ruby Web 驱动程序中查找后已发生更改?

    我正在尝试编写一个爬虫 它可以从加载的页面中爬取所有链接 并在某个文件 例如 XML 或 txt 中记录所有请求和响应标头以及响应正文 我正在新浏览器窗口中打开第一个加载页面的所有链接 因此不会出现此错误 Element not found
  • 嵌入共享库的绝对路径

    使用供应商提供的交叉编译工具链 显然是 OpenEmbedded 衍生品 我无法嵌入第三方 开源 内部编译 库的绝对路径 使用以下 gcc 命令行 arm linux gcc test connect send o gprs connect
  • VBA计算文件内容的MD5哈希值

    我需要一个 VBA 例程来计算文件内容的 MD5 哈希值 我找到了一些例子 例如 here https stackoverflow com questions 2826302 how to get the md5 hex hash for
  • 随机 2D 坐标生成

    我需要生成2D随机坐标并找到距一个中心位置的距离 import numpy as np import matplotlib pyplot as plt coords np random random integers 0 50 10 pri
  • 快速搜索高斯核中最大值的坐标

    我有一个简单的代码 可以使用以下命令生成 2D 高斯内核scipy stats gaussian kde http docs scipy org doc scipy 0 13 0 reference generated scipy stat
  • 在一个 ASP.NET MVC 5 解决方案中拥有单独的项目

    我希望在一个 ASP NET 解决方案中拥有许多项目 例如 20 个 所有项目都有自己的数据库 模型 视图和控制器 你能告诉我该怎么做吗 网址又会怎样呢 如果解决方案中有一个项目 则如下所示 本地主机 12345 控制器 视图 当项目较多时
  • Perl 6 对象如何找到可能位于父类或角色中的多重方法?

    考虑这个例子 其中子类有一个没有签名的 multi 方法和一个带有 slurpy 参数的方法 class Foo multi method do it put Default multi method do it Int n put Int
  • 如何访问 Facebook 开发者应用程序?

    当我点击 Facebook 开发者应用程序 http developers facebook com apps 的链接时 我会被重定向到我的常规 Facebook 页面 社区链接 http www facebook com groups f
  • 如何使用 jQuery 替换 div 的innerHTML?

    我怎样才能实现以下目标 document all regTitle innerHTML Hello World 使用 jQuery 的地方regTitle is my div id regTitle html Hello World
  • JavaScript 中的 Java byteArray 等效项

    我正在尝试确定哪种编码方案将为 jpeg 文件类型提供数字 1 或 40 文件的起始数字 我正在开发的 REST API 需要一个类似于 1 94 43 34 等 的字节数组 在node js中 我可以将字节数组设置为十六进制或任何其他编码
  • 无法使用 Flask 路由到“/login”?

    当我打字时 login作为url 会出错 例如 from flask import Flask url for render template request app Flask name app route login def index
  • 在 Windows 7 任务栏中显示完整的应用程序?

    在 Windows 7 上 是否可以创建要在任务栏中显示的应用程序 我想到的是一个小部件 例如媒体播放器或天气部件等 像下面的模型一样 任何想法 是的 这是可能的 您正在寻找的是工具栏或有时称为 桌面带 http msdn microsof
  • React Native Navigator renderScene 被多次调用

    我已经被 RN Navigator 难住了一段时间 试图弄清楚为什么 Navigator 渲染推送到其堆栈中的所有路由 最初
  • 如何解决:该应用程序正在从后台线程修改自动布局引擎

    当代码的某些部分从主线程以外的其他线程更改 UI 项目时 此错误会记录到控制台 但我怎样才能找到它在哪里执行此操作呢 此应用程序正在从后台线程修改自动布局引擎 的主要问题是 它似乎在实际问题发生后很长时间才被记录 这可能会使故障排除变得非常
  • react-hook-form:使用 onBlur 模式时验证不起作用

    我正在尝试显示错误yup and react hook form当用户选择超过 5 个复选框但未成功时 相反 当选择第七个复选框时会显示错误 这是简化的代码 imports const schema yup object shape opt
  • 需要有关必须显示 250 000 条折线的 Google 地图应用程序的指导

    我正在为我正在开发的使用 Google 地图的应用程序寻求建议 Summary 用户具有用于搜索满足条件的街道段的条件列表 街道段将用 3 种颜色来表示 分别是低于平均水平 平均水平和高于平均水平 然后 用户单击街道路段 查看一个信息窗口
  • 如何在android中垂直均匀分布按钮/布局?

    我有一个类似于计算器的布局 每行 4 个按钮 大约有 5 行 我使用以下方法创建了每一行LinearLayout 我已经成功地通过使用完全填充了每行的宽度android layout weight 1 在每个按钮中LinearLayout