为啥当我遇到真实设备或模拟器时没有显示此 TextViews
Posted
技术标签:
【中文标题】为啥当我遇到真实设备或模拟器时没有显示此 TextViews【英文标题】:Why this TextViews are not showing when I run into a real device or emulator为什么当我遇到真实设备或模拟器时没有显示此 TextViews 【发布时间】:2020-05-31 07:21:05 【问题描述】:大家好,我设计了一个带有 CardViews 的 GridLayout 来制作仪表板,但是项目的 TextViews 没有显示在模拟器和真实设备中。在设计器视图中它正在显示,但是当我运行它时,那些 TextView 没有显示..会发生什么? 这是我的蓝图视图: 这是 UI 设计:
如果它们显示在用户界面中,我们可以看到文本视图.. 这是我的 xml 布局代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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_
android:layout_
android:orientation="vertical"
android:weightSum="10"
android:background="@drawable/header_background2"
tools:context=".MainActivity">
<RelativeLayout
android:layout_weight="1"
android:layout_
android:layout_>
<TextView
android:id="@+id/textGrid"
android:text="GRID LAYOUT"
android:textSize="30sp"
android:textStyle="bold"
android:textColor="@android:color/white"
android:layout_centerInParent="true"
android:layout_
android:layout_/>
</RelativeLayout>
<GridLayout
android:columnCount="2"
android:rowCount="3"
android:alignmentMode="alignMargins"
android:columnOrderPreserved="false"
android:layout_weight="8"
android:layout_
android:layout_
android:padding="10dp">
<!-- Row 1 -->
<!-- Column 1 -->
<androidx.cardview.widget.CardView
android:layout_
android:layout_
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_marginBottom="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
app:cardCornerRadius="8dp"
app:cardElevation="5dp">
<LinearLayout
android:layout_
android:layout_
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical">
<ImageView
android:id="@+id/chartDiet"
android:layout_
android:layout_
android:layout_gravity="center_horizontal"
android:src="@drawable/diet" />
<TextView
android:layout_
android:layout_
android:layout_gravity="center"
android:text="Dieta"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<!-- Column 2 -->
<androidx.cardview.widget.CardView
android:layout_
android:layout_
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="8dp"
app:cardElevation="5dp">
<LinearLayout
android:layout_
android:layout_
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical">
<ImageView
android:id="@+id/chartExercise"
android:layout_
android:layout_
android:layout_gravity="center_horizontal"
android:src="@drawable/exercise" />
<TextView
android:layout_
android:layout_
android:layout_gravity="center"
android:text="Exercise"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<!-- Row 2 -->
<!-- Column 1 -->
<androidx.cardview.widget.CardView
android:layout_
android:layout_
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="8dp"
app:cardElevation="5dp">
<LinearLayout
android:layout_
android:layout_
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical">
<ImageView
android:id="@+id/chartMeditation"
android:layout_
android:layout_
android:layout_gravity="center_horizontal"
android:src="@drawable/meditation" />
<TextView
android:layout_
android:layout_
android:layout_gravity="center"
android:text="Meditation"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<!-- Column 2 -->
<androidx.cardview.widget.CardView
android:layout_
android:layout_
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="8dp"
app:cardElevation="5dp">
<LinearLayout
android:layout_
android:layout_
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical">
<ImageView
android:id="@+id/chartYoga"
android:layout_
android:layout_
android:layout_gravity="center_horizontal"
android:src="@drawable/yoga" />
<TextView
android:layout_
android:layout_
android:layout_gravity="center"
android:text="Yoga"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<!-- Row 3 -->
<!-- Column 1 -->
<androidx.cardview.widget.CardView
android:layout_
android:layout_
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="8dp"
app:cardElevation="5dp">
<LinearLayout
android:layout_
android:layout_
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical">
<ImageView
android:id="@+id/chartRunning"
android:layout_
android:layout_
android:layout_gravity="center_horizontal"
android:src="@drawable/running" />
<TextView
android:layout_
android:layout_
android:layout_gravity="center"
android:text="Running"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<!-- Column 2 -->
<androidx.cardview.widget.CardView
android:layout_
android:layout_
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="8dp"
app:cardElevation="5dp">
<LinearLayout
android:layout_
android:layout_
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical">
<ImageView
android:id="@+id/chartWorkout"
android:layout_
android:layout_
android:layout_gravity="center_horizontal"
android:src="@drawable/workout"
/>
<TextView
android:layout_
android:layout_
android:layout_gravity="center"
android:text="Workout"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</GridLayout>
</LinearLayout>
有人可以帮助我,我不知道错误在哪里.. 或者我的设计不好,也许我应该重新开始另一个项目,使用 ConstraintLayout 像根元素.. 谢谢.. PD:每一行的代码都是一样的,只是改变图像和文本视图
【问题讨论】:
【参考方案1】:正在使用我的模拟器
我对build.gradle
的依赖是
实现 'androidx.cardview:cardview:1.0.0'
请尝试更改为
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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_
android:layout_
android:orientation="vertical"
android:weightSum="10"
tools:context=".MainActivity">
<RelativeLayout
android:layout_weight="1"
android:layout_
android:layout_>
<TextView
android:id="@+id/textGrid"
android:text="GRID LAYOUT"
android:textSize="30sp"
android:textStyle="bold"
android:textColor="@android:color/white"
android:layout_centerInParent="true"
android:layout_
android:layout_/>
</RelativeLayout>
<GridLayout
android:columnCount="2"
android:rowCount="3"
android:alignmentMode="alignMargins"
android:columnOrderPreserved="false"
android:layout_weight="8"
android:layout_
android:layout_
android:padding="10dp">
<!-- Row 1 -->
<!-- Column 1 -->
<androidx.cardview.widget.CardView
android:layout_
android:layout_
android:layout_columnWeight="1"
android:layout_rowWeight="1"
android:layout_marginBottom="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
app:cardCornerRadius="8dp"
app:cardElevation="5dp">
<LinearLayout
android:layout_
android:layout_
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical">
<ImageView
android:id="@+id/chartDiet"
android:layout_
android:layout_
android:layout_gravity="center_horizontal"
android:src="@drawable/ic_collections_bookmark_black_24dp" />
<TextView
android:layout_
android:layout_
android:layout_gravity="center"
android:text="Dieta"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<!-- Column 2 -->
<androidx.cardview.widget.CardView
android:layout_
android:layout_
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="8dp"
app:cardElevation="5dp">
<LinearLayout
android:layout_
android:layout_
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical">
<ImageView
android:id="@+id/chartExercise"
android:layout_
android:layout_
android:layout_gravity="center_horizontal"
android:src="@drawable/ic_collections_bookmark_black_24dp" />
<TextView
android:layout_
android:layout_
android:layout_gravity="center"
android:text="Exercise"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<!-- Row 2 -->
<!-- Column 1 -->
<androidx.cardview.widget.CardView
android:layout_
android:layout_
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="8dp"
app:cardElevation="5dp">
<LinearLayout
android:layout_
android:layout_
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical">
<ImageView
android:id="@+id/chartMeditation"
android:layout_
android:layout_
android:layout_gravity="center_horizontal"
android:src="@drawable/ic_collections_bookmark_black_24dp" />
<TextView
android:layout_
android:layout_
android:layout_gravity="center"
android:text="Meditation"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<!-- Column 2 -->
<androidx.cardview.widget.CardView
android:layout_
android:layout_
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="8dp"
app:cardElevation="5dp">
<LinearLayout
android:layout_
android:layout_
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical">
<ImageView
android:id="@+id/chartYoga"
android:layout_
android:layout_
android:layout_gravity="center_horizontal"
android:src="@drawable/ic_collections_bookmark_black_24dp" />
<TextView
android:layout_
android:layout_
android:layout_gravity="center"
android:text="Yoga"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<!-- Row 3 -->
<!-- Column 1 -->
<androidx.cardview.widget.CardView
android:layout_
android:layout_
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="8dp"
app:cardElevation="5dp">
<LinearLayout
android:layout_
android:layout_
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical">
<ImageView
android:id="@+id/chartRunning"
android:layout_
android:layout_
android:layout_gravity="center_horizontal"
android:src="@drawable/ic_collections_bookmark_black_24dp" />
<TextView
android:layout_
android:layout_
android:layout_gravity="center"
android:text="Running"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<!-- Column 2 -->
<androidx.cardview.widget.CardView
android:layout_
android:layout_
android:layout_rowWeight="1"
android:layout_columnWeight="1"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
app:cardCornerRadius="8dp"
app:cardElevation="5dp">
<LinearLayout
android:layout_
android:layout_
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical">
<ImageView
android:id="@+id/chartWorkout"
android:layout_
android:layout_
android:layout_gravity="center_horizontal"
android:src="@drawable/ic_collections_bookmark_black_24dp" />
<TextView
android:layout_
android:layout_
android:layout_gravity="center"
android:text="Workout"
android:textColor="@android:color/black"
android:textSize="18sp"
android:textStyle="bold" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</GridLayout>
</LinearLayout>
使用构建等级:
apply plugin: 'com.android.application'
android
compileSdkVersion 28
defaultConfig
applicationId "com.something"
minSdkVersion 14
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
dependencies
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'androidx.cardview:cardview:1.0.0'
另外我不知道你的drawables,检查他们没有黑色背景,如果仍然不起作用
【讨论】:
我尝试了 'com.android.support:cardview-v7:28.0.0' 和 'com.android.support:cardview-v7:28.0.0-alpha3' 但它不起作用。 . IDE 说:版本 28(适用于 android pie 及以下版本)是遗留支持库的最后一个版本.. 此消息是要迁移到 androidx.. 我以为我有一个设计错误,但是是 cardview 的版本。 . 我不知道如何使用 androidx 修复它以上是关于为啥当我遇到真实设备或模拟器时没有显示此 TextViews的主要内容,如果未能解决你的问题,请参考以下文章