2015-02-11 60 views
0

我是一名剛剛開始學習如何在Android上編程的大學生,我正在使用Android Studio。我相對比較新,但是對於迄今爲止某些工作是如何工作的瞭解了一個非常非常普遍的想法。我的任務是設計一個小費計算器應用程序,用戶可以輸入三個文本字段:總費用,小費百分比和分割字段,如果用戶想要在不同的人之間平均分配支票,則使用默認值分裂只是一個人。只有應用程序的功能被指定,而不是佈局或美學。Android Studio中的佈局幫助

我有一個非常普遍的想法,我想以我想要我的應用程序的樣子去。我希望我的三個輸入框直接排列在最左邊,並且在輸入三個字段後自動顯示屏幕的最底部顯示每人的總金額,默認值爲總帳單和小費百分比爲0,默認分配爲1.

到目前爲止,我無法將每個輸入欄對齊到最左側。我的第一個領域從左邊開始,然後下一個默認直接開到右邊。我無法弄清楚如何將它們堆疊在一起。在設計選項卡下,我可以將一個字段放在另一個字段的下方,但試圖將一個字段移到另一個字段的右側,反之亦然。我必須更改活動的xml文件中的什麼語法才能讓它們對齊一個?我一直在尋找一些關於佈局的教程網站,但他們沒有解釋如何實現我的具體想法。我該怎麼做呢?

我感謝幫助

編輯:是這樣的

enter image description here

+0

你可以發佈照片向我們展示你的預期觀點的樣子? – Rami 2015-02-11 21:48:53

+0

@Rami是對的。如果你想讓任何人都能夠幫助你,你應該至少將其張貼爲jpeg ... – 2015-02-11 21:55:29

+0

@對不起,我上傳了一張我想要的圖片 – pcd13 2015-02-12 00:15:52

回答

0

聽起來像是一個非常簡單的佈局。我對Android Studio很陌生,但看看LinearLayout(垂直)。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal"> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/editText" 
      android:text="split between"/> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/editText2" 
      android:text="a tip?"/> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/editText3" 
      android:text="total"/> 
    </LinearLayout> 
</LinearLayout> 
0

試試這個建議:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="15dp"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="Total bill : $" 
      android:id="@+id/totalBillTv" 
      android:layout_gravity="center_vertical" 
      android:layout_marginLeft="15dp" 
      android:textColor="#000000" /> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/totalBillEdt" 
      android:text="100" 
      android:layout_marginLeft="9dp" 
      android:layout_gravity="center_vertical" 
      android:background="#ffffff" /> 
    </LinearLayout> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="21dp"> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="Tip % :" 
      android:id="@+id/tipTv" 
      android:layout_gravity="center_vertical" 
      android:layout_marginLeft="15dp" 
      android:textColor="#000000" /> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/tipEdt" 
      android:text="15" 
      android:layout_marginLeft="9dp" 
      android:layout_gravity="center_vertical" 
      android:background="#ffffff" /> 
     </LinearLayout> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="21dp"> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="Split " 
      android:id="@+id/splitTv" 
      android:layout_gravity="center_vertical" 
      android:layout_marginLeft="15dp" 
      android:textColor="#000000" /> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/splitEdt" 
      android:text="2" 
      android:layout_marginLeft="9dp" 
      android:layout_gravity="center_vertical" 
      android:background="#ffffff" /> 
     </LinearLayout> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="21dp"> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="Total :" 
      android:id="@+id/totalTv" 
      android:layout_gravity="center_vertical" 
      android:layout_marginLeft="15dp" 
      android:textColor="#000000" /> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/totalEdt" 
      android:text="57.50" 
      android:layout_marginLeft="9dp" 
      android:layout_gravity="center_vertical" 
      android:background="#ffffff" /> 
     </LinearLayout> 
</LinearLayout> 

PS:你可以android:textSize="YOUR_VALUE"玩,要改變文本

0

的大小可以像下面這樣做:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="15dp" 
     android:id="@+id/first_layout" 
     android:layout_marginLeft="14dp"> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/total_bill" 
      android:layout_toRightOf="@+id/total_bill_label" 
      android:layout_marginLeft="9dp" 
      android:minWidth="90dp" 
      android:layout_centerVertical="true" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:text="Total bill: $" 
      android:id="@+id/total_bill_label" 
      android:layout_centerVertical="true" /> 
    </RelativeLayout> 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="15dp" 
     android:id="@+id/second_layout" 
     android:layout_below="@+id/first_layout" 
     android:layout_marginLeft="14dp"> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/tip" 
      android:layout_toRightOf="@+id/tip_label" 
      android:layout_marginLeft="9dp" 
      android:minWidth="90dp" 
      android:layout_centerVertical="true" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:text="Tip: %" 
      android:id="@+id/tip_label" 
      android:layout_centerVertical="true" /> 
    </RelativeLayout> 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="15dp" 
     android:id="@+id/third_layout" 
     android:layout_below="@+id/second_layout" 
     android:layout_marginLeft="14dp"> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/split" 
      android:layout_toRightOf="@+id/split_label" 
      android:layout_marginLeft="9dp" 
      android:minWidth="40dp" 
      android:layout_centerVertical="true" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:text="Split:" 
      android:id="@+id/split_label" 
      android:layout_centerVertical="true" /> 
    </RelativeLayout> 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="15dp" 
     android:id="@+id/fourth_layout" 
     android:layout_below="@+id/third_layout" 
     android:layout_marginLeft="14dp" > 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/total" 
      android:layout_toRightOf="@+id/total_label" 
      android:layout_marginLeft="9dp" 
      android:minWidth="90dp" 
      android:layout_centerVertical="true" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:text="Total:" 
      android:id="@+id/total_label" 
      android:layout_centerVertical="true" /> 
    </RelativeLayout> 

</RelativeLayout> 

如果你想知道更多關於我使用的佈局d,這裏是一個簡單的解釋:

我已經把每個標籤和相關的EditText放在一個相對的佈局中,以便能夠對齊它們的垂直中心。你可以看到

android:layout_centerVertical="true" 

android:layout_toRightOf="@+id/total_bill_label" 

第一佈局中。

之後,我在相對佈局中使用alignComponent來對齊佈局。

這是佈局的預覽:

Preview of the above layout

+0

您的解決方案有效,但...爲了獲得更好的性能,建議使用LinearLayout(而不是RelativeLayout)(如果它執行該工作)。因爲RelativeLayout會執行額外的度量,可能會相當昂貴,特別是在複雜的層次結構中。 – Rami 2015-02-12 08:51:56

+0

你是對的肯定。但這是一個只有少數(有限)項目的佈局。 – 2015-02-12 11:56:44