我正在尝试在XML中创建删除线文本。我做了一个drawable(只是一行),如果满足条件,则在文本后面绘制(使用数据绑定)。问题是我的文字和删除线是不同的颜色,当添加drawable时,它被绘制在文本后面,看起来很奇怪。我需要它出现在文本上,而不是它背后。目前,我使用class Student(object):
def __init__(self, name, surname, grade, hours):
self.name = name
self.surname = surname
self.grade = grade
self.hours = hours
def getName(self):
return '{}'.format(self.name)
def getSurname(self):
return '{}'.format(self.surname)
def getGrade(self):
#return '{} {}'.format(self.grade, self.hours)
for a,b in zip(self.grade, self.hours):
return (a,b)
def getHours(self):
return '{}'.format(self.hours)
def getQPoints(self):
pass
stud1 = Student("John","Brown",["A","B","A"],["15.0","25.0","20.0"])
stud2 = Student("Mary","Watson","B","20")
print (stud1.getName())
print (stud1.getSurname())
print (stud2.getName())
print (stud2.getSurname())
print (stud1.getGrade())
print (stud1.getHours())
Android属性,所以它有理由为什么它会在文本后面呈现,但我找不到任何其他选项。我在网上找到的唯一相关帮助就是使用background
,但是抽签根本就不会出现。另外,我不能以编程方式执行此操作,我想在xml中执行此操作,以便我不需要在其他地方引用我的视图。任何帮助,将不胜感激。以下是我的一些代码:
drawableTop
和我的绘画:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/spacing_xs"
android:layout_marginLeft="@dimen/spacing_xs"
android:text="@{@string/text(viewModel.insertThisIntoString)}"
android:background="@{viewModel.displayStrikeThrough.value ? @drawable/strikethrough_text : null}"/>
我在尝试通过TextView显示ImageView时使用的代码:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<item>
<shape android:shape="line">
<stroke android:width="2dp"
android:color="@color/app_grey_300"/>
</shape>
</item>
</layer-list>
理想情况下,我希望ImageView的layout_width跨越它所覆盖的TextView的宽度。我尝试将RelativeLayout的宽度设置为<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/spacing_xs"
android:layout_marginLeft="@dimen/spacing_xs"
android:text="@{@string/text(viewModel.insertThisIntoString)}"/>
<ImageView
android:layout_width="40dp"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@drawable/strikethrough_text"/>
</RelativeLayout>
(使其宽度与TextView的宽度相匹配),并将ImageView的宽度设置为wrap_content
,以便填满RelativeLayout的宽度,因此TextView,但不起作用 - 宽度将跨越整个屏幕。我目前在40dp时确保它会出现。
另外,应该注意的是,我尝试将drawable设置为ImageView的背景和src,但两者都不起作用。
答案 0 :(得分:1)
由于您在android:layout_height="wrap_content"
中使用ImageView
,因此需要尽可能多的高度。但是你的Drawable
不是位图,也没有大小本身。因此它需要精确的0px高度,因为它需要0px而没有大小
您应该为高度设置一些具体值,或者使ImageView
匹配大小为TextView
,具体取决于您希望的样子。