左右对齐的文本按钮

6

我在安卓开发方面还比较新手,需要您的帮助。 我需要一个按钮,按钮上的文本为粗体并靠左对齐,同时还需要另一段文本,使用不同的字体(更小、不同的颜色),靠右对齐。就像这样:

[**Name**           john]
//Name is bold and black
// john is smaller and let's say blue

我在网上进行了调查,但没有找到任何有用的信息。

我尝试过:

this.button.setText(Html.fromHtml(styledText));

但是看起来它似乎不支持alignment="right"text-allign:right甚至是float:right
我还发现另一种解决方案是使用表格布局和表格行,但我需要一个按钮来触发某些操作。我不想为文本的两个部分使用两个按钮。
提前致谢。

按钮中的文本默认居中,因此如果您在其中添加一些空格,则两个部分将自动分开。 - Saqib
1
使用线性布局(LinearLayout)和两个TextView,将该线性布局视为按钮。这样,您就可以更改两个TextView的字体颜色和大小。 - Neha Agarwal
https://dev59.com/mlvUa4cB1Zd3GeqPpQWH - Zohra Khan
3个回答

2

Step 1: res/drawable/button_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/button_bg_pressed" android:state_pressed="true"></item>
    <item android:drawable="@drawable/button_bg_normal"></item>
</selector>

步骤2:创建一个包含两个TextView的LinearLayout。

           <LinearLayout
                android:id="@+id/myCustomButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:background="@drawable/button_selector" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="left"
                    android:textStyle="bold"
                    android:textColor="@color/black"
                    android:background="@drawable/ai_contact_us" />

                <TextView
                    android:id="@+id/aiResetPwdButton"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="right"
                    android:textColor="@color/blue"/>

            </LinearLayout>

步骤三: 在你的onCreate()方法中

View buttonView = findViewById(R.id.myCustomButton);
buttonView.setOnClickListener(new View.OnClickListenet(){
    @Override
    public void onClick(View view) {
    Toast.makeText(MainActivity.this, "Button Clicked", Toast.LENGTH_SHORT).show();
    }
});

我尝试了你的代码,它完全按照我的要求布局了视图,但是当行被点击时背景没有改变。 - Greg
你是否已经保留了 res/drawable/button_selector.xml 这个文件以及用于按下和正常状态背景更改的两个 drawable .png 或 .jpg 文件? - Vishesh Chandra
不,我认为它不会接受颜色,请使用drawable。尝试使用@drawable/button_bg_normal。 - Vishesh Chandra
我想要实现的是普通按钮状态下的白色(透明)背景,当按钮被按下时变为灰色。我已经创建了按钮列表,其中第一个按钮具有圆角顶部矩形,中间的按钮是正方形,最后一个按钮具有圆角底部矩形。我没有每个按钮状态的图像。使用颜色会更容易些。 - Greg
你在使用形状作为背景吗? - Vishesh Chandra
显示剩余2条评论

0

使用重力有什么问题吗?

android:gravity="right|center_vertical"

0
不要使用按钮,使用一个RelativeLayout(甚至一个LinearLayout也可以)和两个textviews更简单。给这个布局添加一个背景,使它看起来像一个按钮。然后,为该布局添加一个OnClickListener

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接