我在一个非常复杂的布局上有一堆按钮。问题是,无论我做什么,按钮都不会将文本置于其中。我尝试添加android:gravity =“center”,我尝试从代码设置重力,我尝试从按钮中删除所有格式。我究竟做错了什么?按钮上的文字需要居中。
这是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:layout_width="wrap_content"
android:layout_height="130dp" android:layout_gravity="center"
android:orientation="vertical">
<!-- android:background="@drawable/picture_frame_94x94_suggested_matches" -->
<ImageView android:layout_width="wrap_content"
android:src="@drawable/picture_unknown" android:layout_height="fill_parent"
android:scaleType="centerInside" android:paddingTop="12dp"
android:paddingBottom="40dp" android:id="@+id/suggest_icon"
android:layout_gravity="center"></ImageView>
<TextView android:layout_width="wrap_content"
android:layout_gravity="center_horizontal|bottom"
android:paddingLeft="4dp" android:paddingRight="4dp"
android:layout_height="wrap_content" android:id="@+id/suggest_name"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingBottom="12dp" android:textColor="@color/black"></TextView>
</FrameLayout>
<LinearLayout android:orientation="horizontal"
android:layout_gravity="center_horizontal" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_weight="0.4">
<Button android:id="@+id/unmatch_button" android:text="Un-match" android:textColor="@color/white"
android:background="@drawable/button_background" android:layout_gravity="center_vertical"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_marginRight="8dp" android:layout_marginLeft="8dp" android:gravity="center"
android:visibility="gone" android:textAppearance="?android:attr/textAppearanceMedium" />
<Button android:id="@+id/nextmatch_button" android:text="@string/next" android:textColor="@color/white"
android:background="@drawable/button_background" android:layout_gravity="center_vertical"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_marginRight="8dp" layout_marginLeft="8dp" android:gravity="center"
android:visibility="gone" android:textAppearance="?android:attr/textAppearanceMedium" />
<Button android:id="@+id/donematchpicker_button" android:text="@string/done" android:textColor="@color/white"
android:background="@drawable/button_background" android:layout_gravity="center_vertical"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_marginRight="8dp" layout_marginLeft="8dp" android:gravity="center"
android:visibility="gone" android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
<TextView android:layout_width="wrap_content"
android:layout_gravity="center_horizontal|bottom"
android:paddingLeft="4dp" android:paddingRight="4dp"
android:layout_height="wrap_content" android:id="@+id/suggest_count"
android:textAppearance="?android:attr/textAppearanceMedium"
android:paddingBottom="12dp" android:textColor="@color/black"></TextView>
<include layout="@layout/facebook_list" android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<View android:id="@+id/list_devider" android:layout_width="fill_parent"
android:layout_height="1dp" android:background="?android:attr/listDivider"
android:visibility="gone" />
<LinearLayout android:orientation="horizontal"
android:layout_weight="0.4" android:layout_gravity="center_horizontal"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<Button android:id="@+id/exit_button" android:text="@string/exit" android:textColor="@color/white"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/button_background" android:layout_marginRight="8dp"
layout_marginLeft="8dp" android:visibility="gone" android:gravity="center"
android:layout_marginTop="12dp" android:textAppearance="?android:attr/textAppearanceMedium" />
<Button android:id="@+id/donematch_button" android:text="@string/done" android:textColor="@color/white"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/button_background" android:layout_marginRight="8dp"
layout_marginLeft="8dp" android:visibility="gone" android:gravity="center"
android:layout_marginTop="12dp" android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
这是对话框背景的XML:
<?xml version="1.0" encoding="UTF-8"?>
<solid android:color="#969798" />
<stroke android:width="3dp" android:color="#7dd6ee" />
<corners android:bottomRightRadius="6dp" android:bottomLeftRadius="6dp"
android:topLeftRadius="6dp" android:topRightRadius="6dp"/>
屏幕截图:http://i39.tinypic.com/fc8aoo.png
这是示例按钮初始化:
nextButton = (Button)findViewById(R.id.nextmatch_button);
nextButton.setVisibility(View.VISIBLE);
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new Thread(new Runnable() {
public void run() {
// bunch of code
});
nextButton.setGravity(Gravity.CENTER);
这是按钮背景的定义:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/button_small_hover" />
<item android:state_focused="true" android:drawable="@drawable/button_small_hover" />
<item android:state_enabled="false" android:drawable="@drawable/button_small2_disabled" />
<item android:drawable="@drawable/button_small2" />
</selector>
是什么导致文本左对齐而不是居中我用它做什么?我似乎无法弄明白。
答案 0 :(得分:3)
设置按钮的相等填充,如:
nextButton.setPadding(2,2,2,2);
希望这能解决问题。
答案 1 :(得分:0)
在您的代码中,对于您的每个按钮
机器人:宽度= “WRAP_CONTENT”
因此无论文本的长度如何,按钮都不会占用那么多空间,
所以不存在制作文本中心的问题
答案 2 :(得分:-1)
尝试制作固定宽度的按钮。
layout_width="100dip"
答案 3 :(得分:-1)
我有一个随意的解决方案,只需在文本的开头和结尾留出一些空格,例如“android:text =”xyz“。