我一直在开发一个应用程序,希望在“相机”视图下方添加一个文本视图,以便可以在其中显示一些文本。 但是,由于某种原因,当试图将文本视图拖动到布局中时,它不会显示在最终屏幕上。
这是我的代码:
let destVC = YourDestinationVC()
destVC.content = "content pertaining to cell selected"
// if the segue name is called segueOne
destinationVC.performSegueWithIdentifier("segueOne", sender: self)
答案 0 :(得分:1)
布局视图 com.google.android.CameraSourcePreview 的高度设置为'match_parent',因此它占用了视图端口上的所有空间。
尝试提供特定的高度,您应该能够看到在CameraSourcePreview下面添加的textview。
希望有帮助。
答案 1 :(得分:0)
很可能由于屏幕上没有足够的空间而无法添加TextView
。
您正在使用LinearLayout
,它以 vertical 或 horizontal 的方式一个接一个地显示所有视图。
您的CameraSourcePreview
的高度和宽度设置为match_parent
,这意味着它将在屏幕上完全伸展。但是,在LinearLayout
中,这也意味着没有空间可以放置下一个视图,因为它将被放置在屏幕之外。
您可以将android:layout_weight="1"
添加到CameraSourcePreview
中。这将使您的TextView
能够适合LinearLayout
,因为基本上是您的CameraSourcePreview
告诉其他人,它将调整自身大小以允许其他组件适合屏幕。
但是,如果您不希望CameraSourcePreview
根据其他视图调整自身大小,则应考虑使用其他布局而不是LinearLayout。诸如ConstraintLayout
或RelativeLayout
之类的方法可能会更好,因为它们允许彼此重叠的视图。
答案 2 :(得分:0)
之所以发生这种情况,是因为摄像机视图的高度占据了显示屏上的整个空间,您可以对LinearLayout使用layout_weight来为TextView留一些必要的空间。
只需使CameraSourcePreview的高度等于0dp并添加一个属性
android:layout_weight="1"
所以它看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/topLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true"
android:orientation="vertical">
<com.google.android.CameraSourcePreview
android:id="@+id/preview"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<com.google.android.GraphicOverlay
android:id="@+id/faceOverlay"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</com.google.android.CameraSourcePreview>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="some text here" />
</LinearLayout>
答案 3 :(得分:0)
我建议不要使用LinearLayout,而应使用易于控制的FrameLayout。通过使用以下代码,也可以在CameraSourcePreview上显示textView
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/topLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true">
<com.google.android.CameraSourcePreview
android:id="@+id/preview"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_gravity ="center">
<com.google.android.GraphicOverlay
android:id="@+id/faceOverlay"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</com.google.android.CameraSourcePreview>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="some text here"
android:layout_gravity ="center|bottom" />
</FrameLayout>