我试图在LinearLayout
的{{1}}内的项目上添加网格线,并试图在RecyclerView
的TextViews上将它们绘制为背景。但是,用户界面实际上并没有正确绘制背景。
我可以在AS的设计预览中看到,要显示的确实是带有网格线的单元格,但实际上并没有在应用程序中以这种方式呈现。我在做什么错了?
这是我的布局行
RelativeLayout
这是我在名为<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/border"
android:orientation="horizontal">
<TextView
android:id="@+id/sensorName"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/border"
style="@style/BodyText"/>
<TextView
android:id="@+id/sensorData"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/border"
style="@style/BodyText"/>
</LinearLayout>
的xml文件中定义为背景的形状
border.xml
这是无边界的布局。只看它是否改变,我定义了我的“边框”以绘制完全黑色的背景,但它根本没有显示
在屏幕的设计预览中,我看到它应该显示出来。
这是<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- View background color -->
<solid
android:color="@color/black" >
</solid>
<!-- View border color and width -->
<stroke
android:width="1dp"
android:color="@color/black" >
</stroke>
<!-- The radius makes the corners rounded -->
<corners
android:radius="2dp" >
</corners>
</shape>
文件
@style/BodyText
答案 0 :(得分:0)
在您的border.xml
中,您有
<solid
android:color="@color/black" >
</solid>
<stroke
android:width="1dp"
android:color="@color/black" >
</stroke>
因此,背景和线条颜色为黑色。另外,默认情况下,文本为黑色。
将背景设置为透明或任何其他颜色。
<solid
android:color="#00FFFFFF" > // transparent
</solid>
答案 1 :(得分:0)
我稍微改变了行布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="1dp"
android:orientation="horizontal">
<TextView
android:id="@+id/sensorName"
style="@style/BodyText"
android:layout_width="0dp"
android:layout_marginEnd="0.5dp"
android:layout_weight="1"
android:background="@drawable/temp1"
android:text="Collector" />
<TextView
android:id="@+id/sensorData"
style="@style/BodyText"
android:layout_width="0dp"
android:layout_marginStart="0.5dp"
android:layout_weight="1"
android:background="@drawable/temp1"
android:text="--" />
答案 2 :(得分:0)
使用Textview的宽度作为wrap_content或match_parent。 使用背景时请勿使用0dp。
答案 3 :(得分:0)
根据需要更改border.xml中的纯色。
我习惯#C8E7F5
这种颜色
border.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- View background color -->
<solid
android:color="#C8E7F5" >
</solid>
<!-- View border color and width -->
<stroke
android:width="1dp"
android:color="#000000" >
</stroke>
<!-- The radius makes the corners rounded -->
<corners
android:radius="2dp" >
</corners>
</shape>
我正在对布局文件进行一些更改
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/border">
<TextView
android:id="@+id/sensorName"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/border"
style="@style/BodyText"
android:text="Text1"/>
<TextView
android:id="@+id/sensorData"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@drawable/border"
style="@style/BodyText"
android:text="Text2"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="0dp"
android:layout_weight="1"
style="@style/BodyText"
android:text="Text1"/>
<TextView
android:layout_width="0dp"
android:layout_weight="1"
style="@style/BodyText"
android:text="Text2"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="0dp"
android:layout_weight="1"
style="@style/BodyText"
android:text="Text1"/>
<TextView
android:layout_width="0dp"
android:layout_weight="1"
style="@style/BodyText"
android:text="Text2"/>
</LinearLayout>
</LinearLayout>
以上代码后的输出如下图所示:
希望它对您有用。