我在卡片中有两个Textview,用于设置标题和小时。到目前为止,一切都很完美,因为标题如此短暂,但现在,我有很长的头衔。
为避免卡片以标题展开,我设置了ellipse
属性。
但问题是这两个文本视图是重叠的,我不知道如何解决它。
代码:
<com.gc.materialdesign.views.Card
android:id="@+id/jir_card_headerissue"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/jir_issue_name_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/inner_components_spacing"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:ellipsize="end"
android:singleLine="true"
android:text="Crear nueva vista"
android:textAppearance="?android:attr/textAppearanceLarge"/>
<TextView
android:id="@+id/jir_acc_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="@dimen/inner_components_spacing"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:text="20h"
android:textAppearance="?android:attr/textAppearanceSmall"/>
</com.gc.materialdesign.views.Card>
的库
答案 0 :(得分:1)
您可以将2 TextView
放入GroupLayout
内以组织布局(例如水平LinearLayout
)
<com.gc.materialdesign.views.Card
...>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/jir_issue_name_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/inner_components_spacing"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:ellipsize="end"
android:singleLine="true"
android:text="Crear nueva vista"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/jir_acc_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="@dimen/inner_components_spacing"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:text="20h"
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
</com.gc.materialdesign.views.Card>
答案 1 :(得分:1)
您的Card
似乎扩展了RelativeLayout
- 您实际上正在利用android:layout_centerVertical
或android:layout_alignParentRight
这样的属性来利用这一点,因为他们不会在任何其他布局工作)。
您可以进一步使用它,并将长文本视图的约束添加到短文本视图的左侧。首先,您需要将短片移动到布局中的第一个,然后将这些属性添加到长片中:android:layout_toLeftOf="@id/jir_acc_time"
,android:layout_toStartOf="@id/jir_acc_time"
,android:layout_alignParentLeft="true"
,android:layout_alignParentStart="true"
。完整的例子:
<com.gc.materialdesign.views.Card
android:id="@+id/jir_card_headerissue"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/jir_acc_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="@dimen/inner_components_spacing"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:text="20h"
android:textAppearance="?android:attr/textAppearanceSmall"/>
<TextView
android:id="@+id/jir_issue_name_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/inner_components_spacing"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:layout_toLeftOf="@id/jir_acc_time"
android:layout_toStartOf="@id/jir_acc_time"
android:ellipsize="end"
android:singleLine="true"
android:text="Crear nueva vista"
android:textAppearance="?android:attr/textAppearanceLarge"/>
</com.gc.materialdesign.views.Card>
答案 2 :(得分:0)
如果您使用的是LinearLayout,则使用orientation Horizontal,否则您可能正在使用Relative Layout,然后将alignLeft设置为其他文本视图
答案 3 :(得分:0)
使用以下属性在TextViews
中换行LinearLayout
:
<com.gc.materialdesign.views.Card>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/jir_issue_name_tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="@dimen/inner_components_spacing"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:ellipsize="end"
android:singleLine="true"
android:text="Crear nueva vista"
android:textAppearance="?android:attr/textAppearanceLarge"/>
<TextView
android:id="@+id/jir_acc_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:layout_marginRight="@dimen/inner_components_spacing"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:text="20h"
android:textAppearance="?android:attr/textAppearanceSmall"/>
</LinearLayout>
</com.gc.materialdesign.views.Card>
第二个textview将占用所需空间来显示其文本,而第一个textview将填充剩余空间。