应用程序运行时没有出现第二个视图
Posted
技术标签:
【中文标题】应用程序运行时没有出现第二个视图【英文标题】:Second View Not Appearing When App is Run 【发布时间】:2021-12-13 15:55:15 【问题描述】:我已经研究这个奇怪的错误大约一天了,它完全让我感到困惑。我在框架布局中添加了一个 ImageButton,当我查看布局预览时,那里的按钮,但是当我在手机上运行应用程序时,它不存在;但是,当我将手机侧向转动时,会出现未设置任何属性的按钮。我发布了布局 xml 文件以及一些附带的布局照片和一些目录。任何帮助将不胜感激,谢谢。
附:出于某种原因,堆栈溢出对图像的行为真的很奇怪,所以我试图复制评论或其他内容中的链接
片段不工作:
<FrameLayout
android:layout_
android:layout_>
<TextView
android:id="@+id/textViewLastUpdate"
android:layout_
android:layout_
android:text="Last Update: HH:MM DD/MM/YYYY"
android:textColor="@color/black"
android:textSize="12sp"
android:textStyle="bold|italic"
android:layout_margin="10dp"
android:textAlignment="textStart"/>
<ImageButton
android:id="@+id/imageButtonRefresh"
android:layout_
android:layout_
android:src="@drawable/ic_reload"
android:tint="#2196F3"
android:layout_marginStart="340dp"
android:layout_marginEnd="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
tools:ignore="UseAppTint" />
</FrameLayout>
Entire Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:layout_
android:layout_
android:layout_margin="20dp"
android:outlineSpotShadowColor="@color/black">
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical">
<FrameLayout
android:layout_
android:layout_>
<TextView
android:id="@+id/textViewLastUpdate"
android:layout_
android:layout_
android:text="Last Update: HH:MM DD/MM/YYYY"
android:textColor="@color/black"
android:textSize="12sp"
android:textStyle="bold|italic"
android:layout_margin="10dp"
android:textAlignment="textStart"/>
<ImageButton
android:id="@+id/imageButtonRefresh"
android:layout_
android:layout_
android:src="@drawable/ic_reload"
android:tint="#2196F3"
android:layout_marginStart="340dp"
android:layout_marginEnd="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
tools:ignore="UseAppTint" />
</FrameLayout>
<FrameLayout
android:layout_
android:layout_
android:orientation="horizontal"
android:layout_marginTop="25dp">
<TextView
android:id="@+id/textViewUPS"
android:layout_
android:layout_
android:text="UPS: XXX"
android:layout_marginStart="60dp"/>
<TextView
android:id="@+id/textViewMains"
android:layout_
android:layout_
android:text="Mains: XXX"
android:layout_marginStart="210dp"/>
</FrameLayout>
<FrameLayout
android:layout_
android:layout_
android:orientation="horizontal"
android:layout_marginTop="25dp">
<TextView
android:id="@+id/textViewUPSTemp"
android:layout_
android:layout_
android:text="UPS Temp: XXX"
android:layout_marginStart="60dp"/>
<TextView
android:id="@+id/textViewSOP"
android:layout_
android:layout_
android:text="Power Source: XXX"
android:layout_marginStart="210dp"/>
</FrameLayout>
<View
android:layout_
android:layout_
android:background="#c0c0c0"
android:layout_marginTop="10dp"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"/>
<TextView
android:id="@+id/textViewAdvancedInfo"
android:layout_
android:layout_
android:text="More Info . . ."
android:textAlignment="center"
android:padding="10dp"
android:textColor="#2196F3" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<View
android:layout_
android:layout_
android:background="#c0c0c0"
android:layout_margin="10dp"/>
</LinearLayout>
[Image of drawable folders][1]
[Expected layout][2]
[Resulting Layout][3]
[Resulting Layout Side View With Image Artifact][4]
【问题讨论】:
i.stack.imgur.com/mz5nF.pngi.stack.imgur.com/GuO4Z.pngi.stack.imgur.com/WVwTy.pngi.stack.imgur.com/KZKVq.png 你在这里使用了大量边距android:layout_marginStart="340dp"
,你可能需要在布局上做一些基础知识,仅仅因为它在你的模拟器上看起来很好并不意味着它适用于所有设备尺寸
@a_local_nobody 几次迭代后我也有同样的想法,并删除了与它共享 FrameLayout 的 textView 并将其放在卡片的中心。发生了同样的问题,它没有出现,当我侧身转动手机时,伪影就在那里。
【参考方案1】:
浏览目录后,我在 layout-v23 中找到了一个替代布局文件。布局与我的主布局文件夹中的布局不匹配,但与我手机上显示的布局匹配。我将代码从我的主布局复制到 v23 替代布局,修复了错误。
【讨论】:
以上是关于应用程序运行时没有出现第二个视图的主要内容,如果未能解决你的问题,请参考以下文章
用visual c ++时,当一个程序运行后,怎么运行第二个程序啊
在 UINavigationController 中运行 UIViewController 作为 UISplitViewController 的第二个视图