在TextView中缩进项目符号列表

我有一个TextView,我用strings.xml中的string资源填充文本。 string资源包含用于在TextView内创build项目符号列表的<li>元素。 我的问题是,我想要控制项目符号列表中超过一行的缩进。 默认情况下,文本不会缩进子弹,所以看起来很丑。 是否有可能做到这一点与风格参数或以其他方式创build子弹?

提前致谢。

编辑:它真的回答了吗? 我没有任何问题产生子弹列表,如在这些链接中所述,但我有问题得到布局正确。 缩进是这样的:

  • 超出宽度的文字
    的线。

我希望“行”至less开始缩进子弹后面的文字。 这就是我试图达到的。

Solutions Collecting From Web of "在TextView中缩进项目符号列表"

我很惊讶,似乎没有这个问题。 我的意思是,子弹列表不能在关于对话框,常见问题等等中不常见,子弹不必包含太多的文本跨越多行并遇到这个问题。

无论如何,我现在要解决这个问题:

<?xml version="1.0" encoding="utf-8"?> <ScrollView android:id="@+id/ScrollViewTipsLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/TipsLayout" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TableLayout android:layout_height="wrap_content" android:id="@+id/TableLayout01" android:layout_width="wrap_content" > <TableRow> <TextView android:id="@+id/tvIngress" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="@+string/tv_picking_content_ingress" android:layout_span="2" android:singleLine="false" android:layout_weight="1" /> </TableRow> <TableRow> <TextView android:id="@+id/tvCleaningDot1" android:layout_height="wrap_content" android:text="•" android:singleLine="false" /> <TextView android:id="@+id/tvCleaningFirst" android:layout_height="wrap_content" android:text="@+string/tv_picking_content_first" android:layout_width="0dp" android:layout_weight="1" android:gravity="left" android:singleLine="false" /> </TableRow> <TextView android:id="@+id/tvCleaningDot2" android:layout_height="wrap_content" android:text="•" android:singleLine="false" /> <TextView android:id="@+id/tvCleaningSecond" android:layout_height="wrap_content" android:text="@+string/tv_picking_content_second" android:layout_width="0dp" android:layout_weight="1" android:gravity="left" android:singleLine="false" /> </TableRow> </TableLayout> </RelativeLayout> 

我用它来呈现项目符号列表中的静态文本,所以我不打扰在代码中dynamic地创build项目符号+文本。 如果有人有任何build议如何以更好的方式完成同样的事情,请使我高兴。

顺便说一句,如果去解决上面的第二个链接build议的解决scheme:

 android:text="<ol><li>item 1\n</li><li>item 2\n</li></ol> 

第二行,第三行等子行中的行数不会超过一行,这相当丑陋。

谢谢@比约恩
你也可以做一些像波纹pipe一样的东西。

 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:drawableLeft="@drawable/point" android:textAppearance="?android:attr/textAppearanceSmall" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Your Text Here" android:textAppearance="?android:attr/textAppearanceSmall" android:textSize="14sp" /> </LinearLayout> 

我解决这个问题的方式是使用RelativeLayout和marginLeft。 marginLeft将在它和前一个项目之间留出一个空白的边距。

 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollbarTrackVertical="@drawable/scrollbar_vertical_track" android:scrollbarThumbVertical="@drawable/scrollbar_vertical_thumb" android:scrollbarSize="12dip"> <RelativeLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10sp"> <TextView android:id="@+id/body_text3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:lineSpacingExtra="3sp" android:text="Main paragraph of text, before the bulleted list" android:textSize="15sp" /> <TextView android:id="@+id/type1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:lineSpacingExtra="3sp" android:text="• First bullet" android:textSize="15sp" android:layout_below="@+id/body_text3" android:layout_marginLeft="25dp" /> <TextView android:id="@+id/type2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:lineSpacingExtra="3sp" android:text="• Second bullet" android:textSize="15sp" android:layout_below="@+id/type1" android:layout_marginLeft="25dp" /> </RelativeLayout> </ScrollView> 

试图指出问题的关键答案:

  • 要创build一个项目符号列表,使用每行两列的TableLayout 。 项目符号的TextView的一列和文本的另一列
  • 使文本TextView填充剩下的空TableRow并在新行中缩进,将权重设置为1.您可以将子弹重量设置为零,或者只是简单地不设置子弹重量并让其为空
  • 根据我的经验,改变宽度参数不会影响文字和子弹。 所以你可以把它留空或把它设置成任何你想要的。

例:

 <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/bullet" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/bullet"/> <TextView android:id="@+id/TextView01" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="this is the text of a bullet list"/> </TableRow> </TableLayout>