2017-07-13 136 views
0

我是Android編程新手。我在應用程序中有一個登錄按鈕。xml按鈕樣式在Android應用程序中不起作用

<Button 
     android:text="Sign In" 
     android:layout_width="match_parent" 
     android:layout_weight="20" 
     android:layout_height="0dp" 
     android:id="@+id/btnSignIn" 
     android:background="@drawable/ButtonSignInStyle" 
     android:layout_marginLeft="20dp" 
     android:layout_marginRight="20dp" 
     android:textSize="15sp" 
     android:layout_marginTop="2dp" /> 

和我ButtonSignInStyle.xml文件如下

<selector xmlns:android="https://schemas.android.com/apk/res/android"> 

    <item android:state_pressed="false"> 
    <layer-list> 
     <item android:right="5dp" android:top="5dp"> 
     <shape> 
      <corners android:radius="2dp"/> 
      <solid android:color="#D6D6D6"/> 
     </shape> 
     </item> 
     <item android:bottom="2dp" android:left="2dp"> 
     <shape> 
      <gradient android:angle="270" android:endColor="#B3E5FC" android:startColor="#B3E5FC"/> 
      <stroke android:width="1dp" android:color="#BABABA"/> 
      <corners android:radius="4dp"/> 
      <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp"/> 
     </shape> 
     </item> 
    </layer-list> 
    </item> 

    <item android:state_pressed="true"> 
    <layer-list> 
     <item android:right="5dp" android:top="5dp"> 
     <shape> 
      <corners android:radius="2dp" /> 
      <solid android:color="#D6D6D6"/> 
     </shape> 
     </item> 
     <item android:bottom="2dp" android:left="2dp"> 
     <shape> 
      <gradient android:angle="270" android:endColor="#E1F5FE" android:startColor="#B3E5FC"/> 
      <stroke android:width="1dp" android:color="#BABABA"/> 
      <corners android:radius="4dp"/> 
      <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp"/> 
     </shape> 
     </item> 
    </layer-list> 
    </item> 

</selector> 

但是按鈕自敗當我運行該程序。事實上,它並沒有消失,我可以在中間看到非常淺灰色的「登錄」文本。

我在做什麼錯?

截圖:Sign In button is above The Sign Up Button

+1

你可以張貼截圖?也許改變背景顏色給予更多的對比 –

回答

1

可以打破的問題,並簡化。

在可繪製文件夾中創建button_background.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/pressed_state" android:state_pressed="true" /> 
    <item android:drawable="@drawable/normal_state" /> 
</selector> 

創建XML pressed_state.xml

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <corners android:radius="2dp" /> 
    <gradient 
     android:angle="270" 
     android:endColor="#36b136" 
     android:startColor="#1dbf46" /> 
    <stroke 
     android:width="1dp" 
     android:color="#BABABA" /> 
    <corners android:radius="4dp" /> 
    <padding 
     android:bottom="10dp" 
     android:left="10dp" 
     android:right="10dp" 
     android:top="10dp" /> 
</shape> 

創建normal_state.xml

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <corners android:radius="2dp" /> 
    <solid android:color="#D6D6D6"/> 
    <gradient 
     android:angle="270" 
     android:endColor="#B3E5FC" 
     android:startColor="#B3E5FC" /> 
    <stroke 
     android:width="1dp" 
     android:color="#BABABA" /> 
    <corners android:radius="4dp" /> 
    <padding 
     android:bottom="10dp" 
     android:left="10dp" 
     android:right="10dp" 
     android:top="10dp" /> 
</shape> 

它適用於按鈕

<Button 
     android:text="Sign In" 
     android:layout_width="match_parent" 
     android:layout_weight="20" 
     android:layout_height="0dp" 
     android:id="@+id/btnSignIn" 
     android:background="@drawable/button_background" 
     android:layout_marginLeft="20dp" 
     android:layout_marginRight="20dp" 
     android:textSize="15sp" 
     android:layout_marginTop="2dp" /> 
+0

Thanx的答覆,但它沒有解決問題。順便說一句,我看不到Main.axml的設計器選項卡中的按鈕。當我刪除線android:background =「@ drawable/button_background」時,該按鈕變爲可見 –

0

更改httpshttp

<selector xmlns:android="https://schemas.android.com/apk/res/android">

而且重命名繪製xml文件ButtonSignInStyle.xml爲小寫button_signin_style.xml

+0

我開始使用http,但它在開始時找不到,所以我已更改爲https。我做了你的建議,現在正在工作。非常感謝!你爲我節省了一天。 –

+0

:)將它標記爲答案,如果它爲你工作。 –

+0

對不起Mohit,我試圖將其標記爲答案,但它表示「記錄的評分少於'15聲望'的評分,但是不會更改公開顯示的評分」。我只有4個聲望。 :( –

相關問題