草庐IT

android - 在按钮上方滚动文本,底部固定按钮

coder 2023-11-22 原文

我在Android应用程序中无法获得想要的GUI布局结果。

对我想要的内容的简短描述:

GUI将包括两个TextView和四个Button。

四个按钮应水平放置,全部位于同一行,并固定在屏幕的右下角。

两个TextView中的第一个是从屏幕顶部开始的,文本内容从一行到几十行不等-超过了无需滚动即可在屏幕上显示的内容。因此,有时需要滚动才能查看所有内容。即使需要滚动,按钮也不应参与滚动:它们必须始终固定在屏幕右下角的一行中。当需要滚动时,滚动文本应始终位于按钮上方-按钮不得覆盖文本。

两个TextView中的第二个将立即出现在第一个TextView的下面,并且通常只会在文本的总长度上添加一行或两行。当需要滚动时,第二个TextView将与第一个TextView一起滚动,并始终出现在第一个TextView的正下方。

其他限制包括,我希望布局在垂直屏幕和水平屏幕布局中在以下所有Android设备上看起来都像样:

  • Android 1.5 API3 QVGA MDPI(320x240)设备
  • Android 1.5 API3 HVGA MDPI设备
  • Android 1.6 API4 QVGA LDPI设备
  • Android 2.3 API10 WVGA800设备
  • 在上述设备之间显示屏幕的所有内容

  • 我会担心平板电脑改天(例如明天)。

    --

    我已经尝试了许多不同的Layouts组合,但是还没有达到目标的目标。

    (通过我尝试的某些布局组合,我可以使用RelativeLayout修复屏幕左下角的按钮,但是我尝试使用乱七八糟的文本时,总是会导致文本在按钮后面滚动-按钮覆盖了文本。我还没弄清楚让按钮与右下角对齐。)

    如果有人愿意帮助我解决这个问题,那么下面的布局示例xml就是一个对话的起点,但是如下面的屏幕截图所示,使用该相同的布局示例xml生成的布局肯定无法达到目标结果。 (尽管某些屏幕截图显示了相同的问题,但它们有助于显示我在不同屏幕上的位置。)
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <ScrollView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <LinearLayout
                android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="Text View 1.  Text varies from a few lines to many more lines than what fits on the screen.  Scrolling is necessary to see it all." />
                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="Text View 2.  Short text entry sits below Text View 1." />
            </LinearLayout>
        </ScrollView>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <Button
                android:id="@+id/button_1"
                android:layout_height="fill_parent"
                android:layout_width="wrap_content"
                android:text="Button 1" />
            <Button
                android:id="@+id/button_2"
                android:layout_height="fill_parent"
                android:layout_width="wrap_content"
                android:text="Button 2" />
            <Button
                android:id="@+id/button_3"
                android:layout_height="fill_parent"
                android:layout_width="wrap_content"
                android:text="Button 3" />
            <Button
                android:id="@+id/button_4"
                android:layout_height="fill_parent"
                android:layout_width="wrap_content"
                android:text="Button 4" />
        </LinearLayout>
    </LinearLayout>

    1.5_API3_HVGA_Horizo​​ntal_MDPI-短文本:

    问题:按钮应与屏幕的右下角对齐。

    --

    1.5_API3_HVGA_Vertical_MDPI-短文本:

    问题:按钮应与屏幕的右下角对齐。

    --

    1.5_API3_QVGA_240x320_MDPI-短文本:

    问题:第四个按钮被砸了。如有必要,请在前三个按钮上使用文本进行自动换行,留出足够的空间来显示第四个按钮。

    --

    1.5_API3_QVGA_320x240_MDPI-短文本:

    问题:按钮应与屏幕的右下角对齐。

    --

    1.6_API4_QVGA_Horizo​​ntal_LDPI-长文本:

    问题:当文本几乎填满屏幕时,按钮行被粉碎了。该行的按钮不应被砸碎,应固定在屏幕的右下角。文本应在按钮上方滚动。

    --

    1.6_API4_QVGA_Horizo​​ntal_LDPI-短文本:

    问题:按钮应与屏幕的右下角对齐。

    --

    1.6_API4_QVGA_Horizo​​ntal_LDPI-very_long_text,顶部滚动条:

    问题:按钮不在屏幕上。它们应该固定在屏幕的右下角。

    --

    1.6_API4_QVGA_Horizo​​ntal_LDPI-very_long_text,底部的滚动条:

    问题:尽管文本滚动条位于底部,但在何处都找不到这些按钮。它们应该固定在屏幕的右下角。

    --

    1.6_API4_QVGA_Vertical_LDPI-短文本:

    问题:按钮应与屏幕的右下角对齐。

    --

    有什么建议吗?

    --

    附加信息:当我尝试使用RelativeLayout并使用android:layout_alignParentBottom="true"固定屏幕底部的按钮时,我的问题是我不知道如何使用按钮顶部固定滚动 View 的底部。使用android:layout_alignBottom="@id/buttons"只是将滚动 View 的底部与按钮的底部对齐,但随后按钮将覆盖文本,如下所示:

    --

    更新:解决了将按钮固定在右下角以及按钮上方的滚动文本的问题。

    到目前为止,这是经过更改的布局XML,它可以正常工作(如果想查看滚动,请在文本 View 1中粘贴更多文本):
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <ScrollView
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1">
            <LinearLayout
                android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="Text View 1.  Text varies from a few lines to many more lines than what fits on the screen.  Scrolling is necessary to see it all." />
                <TextView
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="Text View 2.  Short text entry sits below Text View 1." />
            </LinearLayout>
        </ScrollView>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="right">
            <Button
                android:id="@+id/button_1"
                android:layout_height="fill_parent"
                android:layout_width="wrap_content"
                android:text="Button 1" />
            <Button
                android:id="@+id/button_2"
                android:layout_height="fill_parent"
                android:layout_width="wrap_content"
                android:text="Button 2" />
            <Button
                android:id="@+id/button_3"
                android:layout_height="fill_parent"
                android:layout_width="wrap_content"
                android:text="Button 3" />
            <Button
                android:id="@+id/button_4"
                android:layout_height="fill_parent"
                android:layout_width="wrap_content"
                android:text="Button 4" />
        </LinearLayout>
    </LinearLayout>
    我还有一个问题,我将针对这个问题发布一个新问题。

    最佳答案

    将ScrollView的layout_height设置为0dp并将其layout_weight设置为1。这应该将按钮推到屏幕底部,但不要再推。

    关于android - 在按钮上方滚动文本,底部固定按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5447554/

    有关android - 在按钮上方滚动文本,底部固定按钮的更多相关文章

    1. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

      我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

    2. 安卓apk修改(Android反编译apk) - 2

      最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

    3. ruby - 在 Ruby 中将整数格式化为固定长度的字符串 - 2

      有没有一种简单的方法可以将给定的整数格式化为具有固定长度和前导零的字符串?#convertnumberstostringsoffixedlength3[1,12,123,1234].map{|e|???}=>["001","012","123","234"]我找到了解决方案,但也许还有更聪明的方法。format('%03d',e)[-3..-1] 最佳答案 如何使用%1000而不是进行字符串操作来获取最后三位数字?[1,12,123,1234].map{|e|format('%03d',e%1000)}更新:根据theTinMan的

    4. ruby-on-rails - Rails 单选按钮 - 模型中多列的一种选择 - 2

      我希望用户从一个模型的三个选项中选择一个。即我有一个模型视频,可以被评为正面/负面/未知目前我有三列bool值(pos/neg/unknown)。这是处理这种情况的最佳方式吗?为此,表单应该是什么样的?目前我有类似的东西但显然它允许多项选择,而我试图将它限制为只有一个..怎么办? 最佳答案 如果要使用字符串列,让我们说rating。然后在你的表单中:#...#...它只允许一个选择编辑完全相同但使用radio_button_tag: 关于ruby-on-rails-Rails单选按钮-模

    5. ruby-on-rails - rspec - 我怎样才能让 "pendings"有我的文本而不仅仅是 "No reason given" - 2

      我有这个代码:context"Visitingtheusers#indexpage."dobefore(:each){visitusers_path}subject{page}pending('iii'){shouldhave_no_css('table#users')}pending{shouldhavecontent('Youhavereachedthispageduetoapermissionic错误')}它会导致几个待处理,例如ManagingUsersGivenapractitionerloggedin.Visitingtheusers#indexpage.#Noreason

    6. ruby - 如何为 pbcopy 生成富文本链接 - 2

      我一直在玩一个脚本,它在Chrome中获取选定的文本并在Google中查找它,提供四个最佳选择,然后粘贴相关链接。它以不同的格式粘贴,具体取决于当前在Chrome中打开的页面-DokuWiki打开的DokuWiki格式,普通网站的HTML,我想要我的WordPress所见即所得编辑器的富文本。我尝试使用pbpaste-Preferrtf来查看没有其他样式的富文本链接在粘贴板上的样子,但它仍然输出纯文本。在文本编辑中保存文件并进行试验后,我想出了以下内容text=%q|{\rtf1{\field{\*\fldinst{HYPERLINK"URL"}}{\fldrsltTEXT}}}|te

    7. ruby-on-rails - Rails 3,在RAILS_ROOT上方显示来自本地文件系统的jpg图片 - 2

      我正在尝试找出一种方法来显示来自不在RAILS_ROOT下(在RedHat或Ubuntu环境中)的已安装文件系统的图像。我不想使用符号链接(symboliclink),因为这个应用程序实际上是通过Tomcat部署的,而当我关闭Tomcat时,Tomcat会尝试跟随符号链接(symboliclink)并删除挂载中的所有图像。由于这些文件的数量和大小,将图像放在public/images下也不是一种选择。我查看了send_file,但它只会显示一张图片。我需要在一个格式良好的页面中显示6个请求的图像。由于膨胀,我宁愿不使用Base64编码,但我不知道如何将图像数据与呈现的页面一起传递下去。

    8. ruby-on-rails - 尝试打开 .gitignore 以在文本编辑器中对其进行编辑,但在 OS X Mountain Lion 上找不到文件位置 - 2

      我使用“newapp_name”创建了一个新的Rails应用程序,我正在尝试编辑.gitignore文件,但在我的应用程序文件夹中找不到它。我在哪里可以找到它?我安装了Git。 最佳答案 .gitignore位于项目的root中,而不是app子目录中。首先打开终端并进入您的目录。您需要使用ls-a来显示stash文件。然后使用打开.gitignore 关于ruby-on-rails-尝试打开.gitignore以在文本编辑器中对其进行编辑,但在OSXMountainLion上找不到文件位

    9. ruby-on-rails - 如何从按钮或链接单击的 View 调用 Rails 方法 - 2

      基本上,我试图在用户单击链接(或按钮或某种类型的交互元素)时执行Rails方法。我试着把它放在View中:但这似乎没有用。它最终只是在用户甚至没有点击“添加”链接的情况下调用该函数。我也用link_to试过了,但也没用。我开始认为没有一种干净的方法可以做到这一点。无论如何,感谢您的帮助。附言。我在ApplicationController中定义了该方法,它是一个辅助方法。 最佳答案 View和Controller是相互独立的。为了使链接在Controller内执行函数调用,您需要对应用程序中的端点执行ajax调用。该路由应调用rub

    10. ruby-on-rails - 如何在 Rails 中添加禁用的提交按钮 - 2

      我在ruby​​表单中有一个提交按钮f.submitbtn_text,class:"btnbtn-onemgt12mgb12",id:"btn_id"我想在不使用任何javascript的情况下通过ruby​​禁用此按钮 最佳答案 添加disabled:true选项。f.submitbtn_text,class:"btnbtn-onemgt12mgb12",id:"btn_id",disabled:true 关于ruby-on-rails-如何在Rails中添加禁用的提交按钮,我们在St

    随机推荐