安卓。 TableLayout 不显示。图像视图问题
Posted
技术标签:
【中文标题】安卓。 TableLayout 不显示。图像视图问题【英文标题】:Android. TableLayout does not displayed. ImageView problem 【发布时间】:2021-08-04 09:30:27 【问题描述】:我是 android 新手,不明白它是如何工作的。我有这个 XML 代码
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:id="@+id/mainWindow"
android:layout_
android:layout_>
<TableLayout
android:id="@+id/katalog"
android:layout_
android:layout_
app:layout_constraintBottom_toTopOf="@+id/button5"
app:layout_constraintStart_toStartOf="parent">
<TableRow
android:id="@+id/row"
android:layout_
android:layout_>
<ImageView // problem is here
android:id="@+id/imageView"
android:layout_
android:layout_
tools:srcCompat="@tools:sample/avatars" />
<LinearLayout
android:id="@+id/linear"
android:layout_
android:layout_
android:orientation="vertical">
<TextView
android:id="@+id/textView11"
android:layout_
android:layout_
android:text="Name"
android:textSize="18sp" />
<TextView
android:id="@+id/textView12"
android:layout_
android:layout_
android:text="Description"
android:textSize="18sp" />
<TextView
android:id="@+id/textView13"
android:layout_
android:layout_
android:text="Stock"
android:textSize="18sp" />
<Button
android:id="@+id/button9"
android:layout_
android:layout_
android:text="Button" />
</LinearLayout>
</TableRow>
</TableLayout>
<Button
android:id="@+id/button3"
android:layout_
android:layout_
android:text="Stuff"
app:backgroundTint="#8BC34A"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/button5"
android:layout_
android:layout_
android:layout_marginEnd="1dp"
android:layout_marginRight="1dp"
android:text="Person"
app:backgroundTint="#8BC34A"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/button6"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toEndOf="@+id/button3" />
<Button
android:id="@+id/button6"
android:layout_
android:layout_
android:layout_marginStart="1dp"
android:layout_marginLeft="1dp"
android:text="card"
app:backgroundTint="#07464E"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/button5" />
</androidx.constraintlayout.widget.ConstraintLayout>
我还有另一个几乎相同的选项。但是这个没有显示。 Java 类也很少有按钮的动作监听器,而 TableLayout 没有。但是另一个带有表格布局的java类没有任何代码,就像那样
public class admpanel extends lk
private TableLayout table;
@SuppressLint("SetTextI18n")
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.admpanel);
那就行了。
附:另一个 TableLayout 没有显示,因为我忘了使用“id”作为片段,然后我修复了它。但现在我不知道
编辑:如果我删除 ImageView,该代码开始工作。如何使用图像视图?有针对性的问题
【问题讨论】:
嗨@Specator 你能用android:src="@mipmap/ic_launcher"
替换行tools:srcCompat="@tools:sample/avatars"
并试一试吗?
@Kartik 不起作用。但是如果我删除头像(imageView),它就会开始工作。
@Kartik 如果我扩展 FragmentActivity 会起作用。但仅适用于android:src="@mipmap/ic_launcher"
如果你也扩展 AppCompatActivity 这将起作用。
【参考方案1】:
您的代码的问题是代码没有为 imageView 指定正确的 android:src 或 app:srcCompat ,这是将 UmageView 膨胀到某个高度所必需的,或者它认为高度为 0dp 导致 ImageView 不显示向上。 tools:src 仅用于在 XML 设计选项卡中显示图像,以了解多少空间或视图的外观。指定的图像不能用于在应用程序中显示它。我已经更新了您的代码以获得更好的设计,并为您的 ImageView (Resource here) 添加了正确的图像。将图像保存在可绘制文件夹中为 a12_logo。如果您有任何问题,请检查此代码并发表评论。
此外,如果此 TableLayout 的目的是用于显示项目列表,请切换到 RecyclerView 以获得更好的性能和更轻松的数据处理。
此外,您的按钮具有固定的高度和宽度,这并不理想,因为某些设备的按钮可能会超出屏幕,因此我为按钮添加了更好的代码。
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main"
android:layout_
android:layout_>
<TableLayout
android:id="@+id/katalog"
android:layout_
android:layout_
android:stretchColumns="1"
app:layout_constraintBottom_toTopOf="@id/button3">
<TableRow
android:id="@+id/row"
android:layout_
android:layout_>
<ImageView
android:id="@+id/imageView"
android:layout_
android:layout_
android:layout_column="0"
android:src="@drawable/a12_logo" />
<LinearLayout
android:id="@+id/linear"
android:layout_
android:layout_
android:layout_column="1"
android:orientation="vertical">
<TextView
android:id="@+id/textView11"
android:layout_
android:layout_
android:text="Name"
android:textSize="18sp" />
<TextView
android:id="@+id/textView12"
android:layout_
android:layout_
android:text="Description"
android:textSize="18sp" />
<TextView
android:id="@+id/textView13"
android:layout_
android:layout_
android:text="Stock"
android:textSize="18sp" />
<Button
android:id="@+id/button9"
android:layout_
android:layout_
android:text="Button" />
</LinearLayout>
</TableRow>
</TableLayout>
<Button
android:id="@+id/button3"
android:layout_
android:layout_
android:text="Stuff"
app:backgroundTint="#8BC34A"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/button5"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/button5"
android:layout_
android:layout_
android:layout_marginEnd="1dp"
android:text="Person"
app:backgroundTint="#8BC34A"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/button6"
app:layout_constraintStart_toEndOf="@+id/button3" />
<Button
android:id="@+id/button6"
android:layout_
android:layout_
android:layout_marginStart="1dp"
android:text="card"
app:backgroundTint="#07464E"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/button5" />
</androidx.constraintlayout.widget.ConstraintLayout>
【讨论】:
@Spectator 很高兴我能帮上忙。以上是关于安卓。 TableLayout 不显示。图像视图问题的主要内容,如果未能解决你的问题,请参考以下文章