我在Android Studio中有一个按钮:
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Event Name (23)" />
看起来像这样:
-------------------------------------
| Event Name (23) |
-------------------------------------
我想要的是一个按钮中的两段文字。
基本上,我想要在按钮的左侧,一个事件的名称......然后我想在按钮的右侧显示为该事件注册的人数,所以它看起来像这样:
-------------------------------------
| Event Name (23) |
-------------------------------------
这样的事情可能吗?
我是Android新手,所以请记住这一点。
答案 0 :(得分:2)
请试试这个
<RelativeLayout
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ff0000"
android:padding="10dp"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="Event Name " />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="(23)" />
答案 1 :(得分:1)
您可以使用布局在其中显示两个文本。您可以在布局中添加侦听器。
答案 2 :(得分:1)
使用spannable字符串
String text;
SpannableString finalText = new SpannableString(text);
finalText.setSpan((new AlignmentSpan.Standard(Alignment.ALIGN_OPPOSITE), <start index of right String>, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
button.setText(finalText);
答案 3 :(得分:1)
您可以创建布局而不是按钮,然后在布局上执行点击事件。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:id="@+id/relLayout">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Event Name"
android:layout_alignParentLeft="true"
android:textSize="16sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="(23)"
android:textSize="16sp"/>
</RelativeLayout>
活动:
RelativeLayout relLayout = (RelativeLayout) findViewById(R.id.relLayout);
relLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Implement Your login on RelativeLayout click
}
});
答案 4 :(得分:0)
您可以在drawable目录中添加名为item_color_grey.xml的文件。代码如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@color/item_grey" />
<item android:state_focused="true" android:drawable="@color/item_grey" />
<item android:state_pressed="true" android:drawable="@color/item_grey" />
<item android:drawable="@color/white" />
</selector>
答案 5 :(得分:0)
您可以使用以下方式执行您需要的任何操作。 在您的布局中定义按钮,如下所示:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:background="@drawable/lay_back"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Event Name"
android:layout_alignParentLeft="true"
android:textSize="26sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="(23)"
android:textSize="26sp"/>
在你的drawable文件夹中创建一个xml文件lay_back.xml并将下面的代码写入其中。
对于涟漪效应:(对于更高的API级别)
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/white">
<item android:drawable="@color/item_grey"/>
</ripple>
对于选择器效果(较低的API):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@color/white" />
<item android:state_focused="true" android:drawable="@color/item_grey" />
<item android:state_pressed="true" android:drawable="@color/item_dark_grey" />
<item android:drawable="@color/item_grey" />
</selector>
您可以将任何颜色存储在值目录的colors.xml中。
答案 6 :(得分:0)
即使这篇文章很老了。我找到了一个解决方案,就是在相对布局中设置两个按钮。
Button1的文字左对齐(clickable = false)和按钮的样式表。
Button2,文本右对齐(clickable = true)和按钮的样式表;并具有背景转移。
捕获活动侧,必须处理这两个按钮的启用和禁用状态。在处理主按钮的单击时。
让我知道是否有人在寻找类似的解决方案;在这种情况下,我可以发布示例代码。