我想我已经尝试和研究了足够的,如果不是所有的东西,但我只是不能让右侧的两个图标显示在android模拟器中。 奇怪的是,它们在设计窗口中完全可见。 此外,使用类似/相同的GUI设计,其他活动可以很好地显示我的所有元素。
我已经很清楚了,视图在屏幕上重叠的方式取决于元素的顺序,因为我将它们放在'组件树' Android Studio IDE。
在Android Studio中正确查看设计:
模拟器右侧缺少图标:
此外,应用程序错过了标题,这可能是由于一个不合适的父活动类(Activity
我从AppCompatActivity
改变了,因为我花了很长时间使用AS设计工具)
以下是应用程序设计的代码XML:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.sbm.bc.smartbooksmobile.ActivityTeacherHwkCheckByTask">
<ImageView
android:id="@+id/Problems"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_gravity="right"
android:layout_marginTop="57dp"
android:elevation="24dp"
android:visibility="visible"
app:srcCompat="@drawable/ic_problems" />
<ImageView
android:id="@+id/Talar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_gravity="right"
android:layout_marginRight="42dp"
android:layout_marginTop="57dp"
android:elevation="24dp"
android:visibility="visible"
app:srcCompat="@drawable/ic_menu_talar" />
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/holo_blue_dark"
android:fitsSystemWindows="true">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.AppBarLayout>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="45dp"
android:background="@android:color/holo_blue_bright">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="40dp"
android:visibility="visible">
<LinearLayout
android:id="@+id/ListOfTaskRows"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="24dp"
android:orientation="vertical"
android:visibility="visible">
</LinearLayout>
</ScrollView>
</TableRow>
<TextView
android:id="@+id/Description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="63dp"
android:allowUndo="false"
android:elevation="20dp"
android:ems="10"
android:text="Úloha"
android:textAlignment="center"
android:textSize="18sp"
android:visibility="visible" />
</RelativeLayout>
答案 0 :(得分:0)
我认为你错过了这样一个事实,即RelativeLayout
个孩子如果重叠就会被吸引到对方面前。在你的情况下,你有一个宽度为TableRow
的{{1}} - 它填充了父级的宽度,但是在图像查看之后它被添加到它们前面。
您可以约束表的宽度,以便通过将其layout_alignEnd
属性设置为最左侧图像的ID来为图像留出空间,以便表格在图像开始处结束。
答案 1 :(得分:0)
嗯,不管你不相信图标丢失的原因是,我决定从普通的Activity中导出我的应用程序而不是之前的AppCompatActivity。
所以我再次将我的活动恢复到extends AppCompatActivity
,然后看看..它有效。
这当然也再次启用了活动标题。
由于它是一个纯粹的不存在(另一个)而我的浪费的时间已经过了几天(不仅仅是这个问题,还有许多其他糟糕的设计和ADT中明显的错误),我刚刚决定在不久的将来abbandon原生Android开发,转而使用Xamarin / C#。 (4年前我从C#Xamarin开始我的Android开发,但由于当时硬件访问支持不足而离开了)。 怎么了!
答案 2 :(得分:0)
对于“Material Design”的用户:
另一个简单的解决方法是使用"elevation" property of any GUI element。 通过增加此值,可以强制在前景上将此元素绘制到具有较低高度的元素上。 作为奖励(或缺点),您可以根据升高的数量在提升的GUI元素周围进行着色。
我想知道这个功能能延长渲染时间 另一个问题是min支持的API版本。 (没有立刻找到它。)