我正在努力优化具有三个特定宽度列的if __name__ == '__main__':
output_file = ... # parse arguments
if output_file:
with open(output_file, 'w') as outf:
do_stuff(outf)
else:
do_stuff(sys.stdout)
行项目。
A列有一个ListView
和一个垂直分隔符Button
B列有一个View
,根据具体情况可能会或可能不会显示TextView
C列的ImageView
无法显示,RelativeLayout
,TextView
或CheckBox
视情况而定
参见示例图片。 Herring Gull行不需要图标。鲱鱼x小黑背鸥(杂交)需要一个红色图标,类似于其上下的其他物种。但是,较长的物种名称在将图标包裹到两条线上时会将图标推出视图。
ImageView
我尝试更换<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/species_row_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="blocksDescendants"
android:orientation="horizontal">
<Button
android:id="@+id/button_count"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.15"
android:background="@null"
android:paddingBottom="3dp"
android:paddingTop="3dp"
android:text="+"
android:textColor="@color/light_gray"/>
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:background="@color/bpWhite"/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="3dp"
android:layout_marginRight="3dp"
android:layout_weight="0.70">
<TextView
android:id="@+id/textview_species_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:minHeight="44dp"
android:paddingBottom="3dp"
android:paddingTop="3dp"
android:text="Species name"
android:textColor="#000"
android:textSize="15sp"/>
<ImageView
android:id="@+id/speciesBinIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingLeft="5dp"
android:paddingStart="5dp"
android:scaleType="fitXY"
android:src="@drawable/ic_uncommon"
android:visibility="gone"/>
</LinearLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.10"
android:gravity="center_vertical">
<TextView
android:id="@+id/textview_rare"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="4dp"
android:background="@drawable/rare_border"
android:gravity="center"
android:text="@string/single_character_for_rare"
android:textColor="@color/rareBackground"
android:textStyle="bold"
android:visibility="gone"/>
<CheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/rareBackground"
android:gravity="center"
android:visibility="gone"/>
<ImageView
android:id="@+id/high_count_warning"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="6dp"
android:layout_marginStart="6dp"
android:layout_marginTop="4dp"
android:gravity="center"
android:scaleType="fitXY"
android:src="@drawable/ic_high_count"
android:visibility="gone"/>
</RelativeLayout>
&amp; TextView
与ImageView
填充TextView
的{{1}}组合,但在包装文字的末尾放置了图标(请参阅Green Woodpecker的示例),当我想要它位于文本的右侧。
我希望的行为是SpannableStringBuilder
图标始终位于ImageView
旁边,当TextView
很长时,TextView
在B列中占主导地位并且ImageView
将文本包装成稍小的空间。
请问这可能吗?
答案 0 :(得分:1)
尝试使用图标移除ImageView
,如果要使用以下代码行显示,请直接在TextView
添加图标:
textView.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.your_id, 0);
希望这有帮助
答案 1 :(得分:0)
很难从你的问题中完全理解,但我解码的是你需要将 textview 和 imageview 并排放置,这只能是如果您对textview宽度进行硬编码并将textview高度设置为 match_paren t,则可能如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/species_row_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="blocksDescendants"
android:orientation="horizontal">
<Button
android:id="@+id/button_count"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.15"
android:background="@null"
android:paddingBottom="3dp"
android:paddingTop="3dp"
android:text="+"
android:textColor="@color/light_gray"/>
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:background="@color/bpWhite"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="1"
android:orientation="vertical"/>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="3dp"
android:layout_marginRight="3dp"
android:layout_weight="0.90">
<TextView
android:id="@+id/textview_species_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:toStartOf="@+id/speciesBinIcon"
android:layout_gravity="center_vertical"
android:minHeight="44dp"
android:paddingBottom="3dp"
android:paddingTop="3dp"
android:text="Species name"
android:textColor="#000"
android:textSize="15sp"/>
<ImageView
android:id="@+id/speciesBinIcon"
android:alignParentEnd="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:paddingLeft="5dp"
android:paddingStart="5dp"
android:scaleType="fitXY"
android:src="@drawable/ic_uncommon"
android:visibility="gone"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.10"
android:gravity="center_vertical">
<TextView
android:id="@+id/textview_rare"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginStart="5dp"
android:layout_marginTop="4dp"
android:background="@drawable/rare_border"
android:gravity="center"
android:text="@string/single_character_for_rare"
android:textColor="@color/rareBackground"
android:textStyle="bold"
android:visibility="gone"/>
<CheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:buttonTint="@color/rareBackground"
android:gravity="center"
android:visibility="gone"/>
<ImageView
android:id="@+id/high_count_warning"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="6dp"
android:layout_marginStart="6dp"
android:layout_marginTop="4dp"
android:gravity="center"
android:scaleType="fitXY"
android:src="@drawable/ic_high_count"
android:visibility="gone"/>
</RelativeLayout>
</LinearLayout>
</LinearLayout>
P.S:代码未经过测试,这只是一个大致的想法
答案 2 :(得分:0)
您必须为textView android:id="@+id/textview_species_name"
声明maxWidth
为了使其正常工作。请记住,它必须是基于设备屏幕宽度的动态