Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 图像+;文本居中对齐按钮_Android_Android Button - Fatal编程技术网

Android 图像+;文本居中对齐按钮

Android 图像+;文本居中对齐按钮,android,android-button,Android,Android Button,我有一个按钮,其宽度为match\u parent。我想要一个中间有文字的图像/图标。我已经尝试了android:drawableStart属性,但是没有任何帮助。我不知道我错过了什么。有没有人也面临同样的问题 注意:这并不能解决我的问题。我正在附加xml的按钮部分 <Button android:background="@drawable/blue_button" android:id="@+id/btn_view" android:layout_width="m

我有一个按钮,其宽度为
match\u parent
。我想要一个中间有文字的图像/图标。我已经尝试了
android:drawableStart
属性,但是没有任何帮助。我不知道我错过了什么。有没有人也面临同样的问题

注意:这并不能解决我的问题。我正在附加xml的按钮部分

<Button
    android:background="@drawable/blue_button"
    android:id="@+id/btn_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:drawableStart="@drawable/ic_list"
    android:text="@string/btn_schedule"
    android:textColor="@android:color/white" />


添加这些属性后,我的文本位于中间,但图像/图标仍位于按钮的左侧。任何人都可以帮忙

您可能想查看我对这个问题的回答:


这是一个丑陋的解决方案,但如果您希望图像和文本作为一个组在按钮中居中,而不是文本中心,并从侧面填充,那么这是我找到的唯一方法。

我尝试了
android:drawableTop


按钮中央显示的图像

我也有同样的问题,我没有找到任何明确的解决方案。但我得到了一些信息,这些信息也帮助我提供了以下解决方案(我选择了第二个):

  • 创建包含图像和文本的图像

     <Button
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:drawableTop="@drawable/YOUR_IMAGE"
         android:gravity="center_horizontal|center_vertical" />
    
    
    
  • 它不是很清楚,你必须添加更复杂的更改到布局中,但是以后修改文本更容易

     <FrameLayout
         android:gravity="center_horizontal"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" >
    
         <Button
             android:layout_height="50dp"
             android:layout_width="match_parent" /> 
    
         <TextView
             android:text="sample"
             android:layout_height="50dp"
             android:layout_width="wrap_content"
             android:drawableLeft="@drawable/YOUR_IMAGE"
             android:gravity="center_horizontal|center_vertical" />
     </FrameLayout>
    
    
    
  • 100%工作

    <FrameLayout
    style="?android:attr/buttonStyle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
    
    <TextView
        style="?android:attr/buttonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@null"
        android:clickable="false"
        android:drawableLeft="@android:drawable/ic_delete"
        android:focusable="false"
        android:gravity="center"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="Button Challenge" />
    
    
    


    这对我很有用。基本上使用按钮的paddingLeft和PaddingRight可以使文本和图像靠近中心

    注意:可能是文本较长的问题

     <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="search button"
                android:drawableStart="@drawable/ic_action_search"
                android:paddingLeft="60dp"
                android:paddingRight="60dp"/>
        </LinearLayout> 
    
    
    
    为什么不试试android:layout\u gravity=“center”,使用它可以修复默认行为,而我会将其作为最后一个可用选项。我想坚持使用android默认行为,除非我没有其他选择来创建我自己的小部件。
    android:drawableTop
    用于顶部而不是文本开头