Как выровнять часть текста на кнопке? - PullRequest
0 голосов
/ 13 декабря 2011

Я хочу выровнять текст на кнопке следующим образом:

 
Thickness         20mm

Я хочу, чтобы толщина была выровнена по левому краю, а значение (20 мм) - по правому краю кнопки. Я изначально пошел с чем-то вроде

thickness_button.setText(res.getString(R.string.THICKNESS)
                              +"\t\t\t\t\t\t\t\t\t\t"+value);  

Первоначально это работало, но когда я меняю локаль, строка THICKNESS изменяется соответственно и очень длинная, поэтому значение переносится на следующую строку и выглядит следующим образом:

 
Thickness         
20mm

Как я могу решить эту проблему? Есть ли решение, которое не связано с изменением элемента (кнопки) пользовательского интерфейса?

Ответы [ 3 ]

1 голос
/ 13 декабря 2011

Кнопка не сильно отличается от TextView / View. Я предлагаю не использовать Button и использовать FrameLayout с двумя TextViews с гравитацией макета LEFT и RIGHT.

Просто добавьте прослушиватель щелчков на свой FrameLayout, и вы создали кнопку.

    frameLayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //...
        }
    });



<FrameLayout
        android:id="@+id/mybutton"
        android:layout_width="150dp"
        android:layout_height="50dp">   
        <TextView
            android:id="@+id/mytext"
            android:textColor="#ff000000"
            android:layout_gravity="center_vertical|left"
                android:text="XXX"
        />
        <TextView
            android:id="@+id/myvalue"
            android:textColor="#ff000000"
            android:layout_gravity="center_vertical|right"
                android:text="YYY"
        />
/>
0 голосов
/ 13 декабря 2011

Я не думаю, что вы можете сделать это с помощью кнопки. Вы должны создать свой собственный вид с макетом и двумя TextView. и используйте это представление вместо Button.

0 голосов
/ 13 декабря 2011

, даже если вы явно упомянули ответ «без изменения элемента пользовательского интерфейса», используйте макет с двумя текстовыми представлениями (один выровненный по левому краю, а другой выровненный по правому краю) и придайте этому макету внешний вид кнопки.

я могу 'Я не могу найти вескую причину, которая может помешать вам идти по этому пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...