ListView 项目布局 targetSdkVersion="17" 和 targetSdkVersion="18" 之间不同

2024-04-03

我刚刚将 Android SDK 更新到版本 18,并修改了我正在处理的项目以使用它而不是版本 17。事实证明,我的 ListView 现在看起来有很大不同。然而,只需在清单文件中将 targetSdkVersion 从 18 切换到 17 就可以恢复正常。

我通过在 Eclipse 中创建一个新的 Android 项目并将主要活动更改为最基本的 ListActivity 实现,成功地重现了该问题:

public class MainActivity extends ListActivity {

    private static final String[] listItems = new String[] { "list item 1", "list item 2"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, R.id.text, listItems));
    }

}

list_item.xml 文件包含以下内容:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/text"
        android:layout_width="match_parent"
        android:layout_height="100dip"
        android:background="#ff0000" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignBottom="@id/text"
        android:layout_alignTop="@id/text"
        android:background="#88ffffff"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:background="#8c0000ff"
            android:text="@string/button1" />

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginLeft="20dip"
            android:background="#8c00ff00"
            android:text="@string/button2" />
    </LinearLayout>

</RelativeLayout>

将 LinearLayout 置于 TextView 之上是有意为之。我想使用 LinearLayout 作为覆盖层并在必要时显示/隐藏它。

现在,当我将 AndroidManifest.xml 文件中的 targetSdkVersion 设置为 17 时,一切都按预期工作,这意味着按钮与 LinearLayout 的高度相匹配。但是,当我将版本切换到 18 时,它们的行为就好像使用了“wrap_content”。为什么我会出现这种奇怪的行为?如何修复它以使其像 SDK 17 中一样工作?


这对我来说似乎很奇怪。据我所知,您的 LinearLayout 不需要设置layout_alignBottom/layout_alignTop 属性,但是删除这些行,LinearLayout 本身也会显示错误。 我能得到我认为在我的测试中想要的结果的唯一方法是从 LinearLayout 中删除alignTop/alignBottom(因为这些似乎不必要)并添加以下行:

  android:minHeight="100dip"

希望这可以帮助。

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

ListView 项目布局 targetSdkVersion="17" 和 targetSdkVersion="18" 之间不同 的相关文章

  • 关闭 Android 中的飞行模式

    如果 num gt 50 我想关闭飞行模式 我实现了这段代码 来自在 Android 中切换飞行模式 https stackoverflow com questions 5533881 toggle airplane mode in and
  • 是否可以使用最新的 APP_PLATFORM,同时仍保持向后兼容性?

    这是我的 Application mk APP ABI armeabi v7a APP PLATFORM android 16 APP OPTIM release APP STL gnustl static APP CPPFLAGS std
  • 显示警报或收到通知时的视图

    我正在关注this http tokudu com 2010 how to implement push notifications for android 显示的教程通知 on an 安卓设备 当我在设备上运行该应用程序时 状态栏上会出现
  • 我可以在 firebase android 中加载另一个用户个人资料图像吗?

    如果我有其他用户的电子邮件但我以其他用户身份登录 我是否可以加载其他用户的个人资料图像 如果您使用 Firebase Storage 那么从技术上讲是的 它只是一个您可以从中检索任何文件的文件系统 如果不伪造您的应用程序 获取 api 密钥
  • Android Lollipop prepareAsync() 需要很长时间才能返回

    在 Samsung Galaxy Note 4 上的 Android Lollipop 几周前刚刚从 4 4 4 更新 上 prepareAsync 几乎需要 20 秒来加载实时流 在 4 4 4 上 只需要 2 3 秒 并且没有错误 见下
  • 按钮未显示在屏幕上

    我创建了一个应用程序 其中显示带有图像和文本的列表视图 我在页面末尾添加按钮 但这没有显示在屏幕上 我是 Android 新手 我该如何解决这个问题 这是我的 UI XML 代码
  • 连接到不可发现的蓝牙设备

    我正在开发一个安卓应用程序 只是一个一般性问题 是否可以连接到公开不可发现的设备 提前致谢 如果您之前已与该设备配对 则即使该设备未处于可发现模式 也可以再次连接到该设备 参见这篇文章 以编程方式连接到配对的蓝牙设备 https stack
  • React Native Android 发布 apk 是调试,而不是发布

    我有一个现有的 Android 应用程序 我已根据以下内容将 React Native v0 30 活动添加到项目中docs http facebook github io react native releases next docs i
  • 访问角落里的存储

    我能找到的与文件存储有关的最接近文档的是这个帖子 http nookdeveloper zendesk com entries 20257971 updated what are the size constraints on my app
  • Android-工具栏中的SearchView

    我只想在我的应用程序中添加 searchview 但我不想搜索任何东西 只是我想要用户输入的查询 到目前为止 我尝试了这段代码 但是当我运行我的应用程序时它崩溃了 Update 我尝试了这个 但即使我的应用程序崩溃了 main menu x
  • Android中不同线程的数据库访问

    我有一个在 AsyncTasks 中从互联网下载数据的服务 它解析数据并将其存储在数据库中 该服务持续运行 当服务写入数据库时 活动会尝试从数据库中读取更改 我有一个数据库助手 有多种写入和读取方法 这会导致问题吗 可能尝试从两个不同的线程
  • 获取可以共享数据的应用程序列表

    此代码显示默认共享对话框 Intent sharingIntent new Intent Intent ACTION SEND sharingIntent setType text html sharingIntent putExtra a
  • Android Web Intent 问题

    G day 免责声明 我不是 Android 开发人员 我正在对我所描述的问题进行质量检查 我用来描述这个问题的技术术语可能是错误的 我正在测试一个 Android 应用程序 该应用程序在其清单中描述它可以使用 type 的地址处理 Web
  • Google 移动广告和 Kindle Fire

    我最近用 Google 移动广告替换了 AdMob 库 对此我有一个疑问 广告会出现在 Amazon Kindle Fire 设备上吗 我问这个是因为我知道 Google 移动广告依赖于 Google Play 服务 所以我有点困惑 Goo
  • 在 AppAuth-Android 中注销

    我有一个用JAVA开发的Android应用程序 对于这个应用程序 我使用的是身份服务器4 https github com IdentityServer IdentityServer4作为我的 STS 一切正常 但我找不到任何注销的实现Ap
  • 如何在Android Compose中使用otf类型字体文件?

    我正在学习使用 Android Jetpack Compose 现在我有一个正则 otf字体文件在资产 字体 我想在文本中使用它 java lang RuntimeException Font asset not found commonu
  • ACCESS_BACKGROUND_LOCATION 不适用于低于 Q (29) 的 Android 版本

    我的应用程序面向 Android API 28 根据文档 https developer android com preview privacy location target android 10 我应该要求ACCESS BACKGROU
  • 删除Android所有语言中的字符串

    我有一个包含多个翻译的应用程序 我想删除一些字符串 我怎样才能重构并删除它们一次 例如在默认情况下strings xml文件并自动将删除传播到其他翻译的其他 strings xml 文件 您可以通过 Android Studio 中的 翻译
  • Android:打开和关闭SQLite数据库

    我正在开发Android应用程序 我经常在其中访问本地数据库 该数据库可以从不同的主题访问 因此我遇到了数据库的协调问题 我使用以下open and close method public void open mDb mDbHelper g
  • putFragment() - 片段 x 当前不在 FragmentManager 中

    上面的标题被问了很多次 但答案似乎与FragmentStatePagerAdapter这与我的问题无关 我正在使用该方法putFragment Bundle String Fragment 直接地 The 安卓文档 http develop

随机推荐

  • 表格的 CSS 过渡

    我有多个表排成一排 当一个人是selected 它应该展开一列 直到现在隐藏 几时取消选择 它应该慢慢收缩 我尝试使用 CSS 转换 但是当单元格中没有文本时 收缩不起作用 column2 background color ddd widt
  • 如何关闭Flex中的所有弹出窗口?

    我想通过按下按钮来显示图像上的所有弹出窗口 已经弹出并单独关闭 并希望在按下另一个按钮时关闭所有这些窗口 任何帮助表示赞赏 尝试这个 package com devahead utils import flash display Displ
  • Selenium 测试运行太快,没有等待单选按钮被选择

    我有一个 Selenium Grid 和 WebDriver 2 48 2 测试 运行速度太快 大多数情况下 测试会停止 因为在按下按钮之前未选择单选按钮 单选按钮是使用基于 JSON 文件的 JavaScript 设置的 可以在一个部分中
  • cocoapods 同步:ld:找不到框架 DATAFilter,链接器命令失败,退出代码 1

    我正在尝试同步 https github com hyperoslo Sync https github com hyperoslo Sync 在我的 em Xcode iOS Swift 项目中工作 我在 Carthage 框架依赖方面有
  • 当用户平移地图时,iOS 6 中的地图注释不会保持旋转

    真的很想回答这个问题https devforums apple com message 723468 https devforums apple com message 723468 我无法发布详细信息 因为它是关于 iOS 6 的 并且是
  • 如何在某些数据结构中表示奇怪的图

    表示图的一种简单方法是使用以下形式的数据结构 1 2 3 2 1 3 3 1 2 该字典中的键是节点 边由它们连接到的其他节点的列表表示 如果链接不对称 此数据结构也可以轻松表示有向图 1 2 2 3 3 1 我对图论了解不多 所以我要提出
  • 选项 importNotUsedAsValues 已弃用

    有人可以帮我解决这个问题吗jsonfig json为一个精简的项目文件 它说的是importsNotUsedAsValues选项应替换为verbatimModuleSyntax compilerOptions moduleResolutio
  • 使用pyserial(python串口)的二进制数据

    pyserial中的serial write 方法似乎只发送字符串数据 我有像 0xc0 0x04 0x00 这样的数组 并且希望能够通过串行端口发送 接收它们 是否有针对原始 I O 的单独方法 我想我可能需要将数组更改为 xc0 x04
  • div 之间的换行会呈现一个空格。如何从 HTML 中消除它?

    我有以下布局 div style width 100px div style width 50 display inline block div1 div div style width 50 display inline block di
  • 数据切换和数据目标不起作用

    我一直在寻找不同的解决方案 但到目前为止没有一个能帮助我 我的下拉菜单不起作用 因为数据切换和数据目标没有 被识别 至少这就是我认为它不起作用的原因 我似乎找不到解决方案 所以我希望这里有人可以帮助我 这是代码
  • 使用递归在 C 中实现单链表:我做错了什么?

    我试图编写的程序的提示是这样的 创建一个链表和一组操作它的函数 所有循环 必须使用递归来完成 以下功能是 该列表将使用的函数 isempty 如果列表为空则返回true 否则返回true find v 查找某个值并返回其索引 如果不成功 则
  • Rails 4,如何正确配置smtp设置(gmail)

    我正在尝试在 Rails 4 中创建一个联系表单 我在这里进行了一些挖掘 并且能够让大部分内容正常工作 在这里关注 sethfri的工作Rails 4 中的联系表格邮寄程序 https stackoverflow com questions
  • 如何在端口 443 上运行 Spring Boot

    我在使用我们的 Spring Boot 应用程序之一时遇到了问题 我们让它在端口 8443 上使用 https 运行 一切正常 现在 我们正在构建与外部支付处理器的集成 它们要求我们在应用程序的端口 443 上有一个回调端点 一些研究告诉我
  • 为什么空锚标记 href 中使用 # 约定?

    我知道最好不要留下空的锚标记 在 jQuery 和其他语法中 我注意到每个人通常都使用 来填补空白 a href anchor text a 这个角色比用其他东西填充它更好还是更坏 例如 a href anchor text a 我没有理由
  • 有没有办法在 CSS 中指定文本或标题数字的使用?

    我选择的字体通常默认为文本数字 这是我喜欢它们的原因之一 但是 对于表格或标题 我想指定应使用衬里数字 CSS 有没有办法做到这一点 为了安抚搜索 旧式数字 文本数字 非衬里数字 中世纪数字 衬里数字 标题数字 Firefox 4 0有基本
  • 在 Replace() 表达式中添加换行符

    我正在尝试使用回归模型中的相关数据来注释 ggplot 中的图 我已遵循建议在这个帖子中 https stackoverflow com questions 7549694 ggplot2 adding regression line eq
  • 使用实体框架仅从日期时间值获取日期部分

    我只想从数据库 日期时间 值获取日期部分 我正在使用下面的代码 但它正在获取日期和时间部分 using FEntities context new FEntities DateTime date DateTime Now if contex
  • 如何在 iOS 应用程序中获取后台运行的应用程序详细信息?

    我想开发一个应用程序 该应用程序应该监视在我的 I Phone 设备 包括互联网浏览器 上运行了多少应用程序 请分享您对这篇文章的想法 有点像这样 https itunes apple com us app system manager i
  • Richfaces 和 Primefaces 彼此兼容吗?

    我现在使用 Primefaces 2 1 我尝试将 Richfaces 3 3 3 集成到我的应用程序中以便使用
  • ListView 项目布局 targetSdkVersion="17" 和 targetSdkVersion="18" 之间不同

    我刚刚将 Android SDK 更新到版本 18 并修改了我正在处理的项目以使用它而不是版本 17 事实证明 我的 ListView 现在看起来有很大不同 然而 只需在清单文件中将 targetSdkVersion 从 18 切换到 17