2013-02-22 60 views
8

Tôi có nút ở đó tôi muốn đặt cùng một khoảng trống giữa tất cả các nút vì vậy nếu tôi chạy ứng dụng trong máy tính bảng, khoảng cách giữa các nút sẽ bằng nhau, tôi đang sử dụng linearlayout, tôi biết có tùy chọn layout_weight nhưng tôi không muốn căng biểu tượngtạo khoảng cách tương tự giữa nút trong linearlayout

ví dụ enter image description here

mã xML của tôi là dưới

<LinearLayout 
     android:id="@+id/shareLinearLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/btnRequestAPrescriptionRefill" 
     android:layout_marginTop="10dp" > 

     <Button 
      android:id="@+id/btnFacebook" 
      android:layout_width="50dp" 
      android:layout_height="50dp" 
      android:background="@drawable/btn_facebook" /> 

     <Button 
      android:id="@+id/btnYoutube" 
      android:layout_width="50dp" 
      android:layout_height="50dp" 
      android:background="@drawable/btn_youtube" /> 

     <Button 
      android:id="@+id/btnTwitter" 
      android:layout_width="50dp" 
      android:layout_height="50dp" 
      android:background="@drawable/btn_twitter" /> 

     <Button 
      android:id="@+id/btnPintrest" 
      android:layout_width="50dp" 
      android:layout_height="50dp" 
      android:background="@drawable/btn_pintrest" /> 
    </LinearLayout> 

Trả lời

26

Bạn có thể sử dụng layout_weight. Nhưng giống như bạn đã nói Buttons will be stretched, vì vậy thay vì sử dụng trọng lượng trên Nút, hãy sử dụng trên không gian (Chế độ xem).

<Button 
     android:id="@+id/btnFacebook" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/btn_facebook" /> 

    <View 
     android:layout_width="0dp" 
     android:layout_height="50dp" 
     android:layout_weight="1" /> 

    <Button 
     android:id="@+id/btnYoutube" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/btn_youtube" /> 

    <View 
     android:layout_width="0dp" 
     android:layout_height="50dp" 
     android:layout_weight="1" /> 

    <Button 
     android:id="@+id/btnTwitter" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/btn_twitter" /> 

    <View 
     android:layout_width="0dp" 
     android:layout_height="50dp" 
     android:layout_weight="1" /> 

    <Button 
     android:id="@+id/btnPintrest" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/btn_pintrest" /> 
</LinearLayout> 
+0

Cuối cùng câu trả lời của bạn là phù hợp :) –

+0

Cảm ơn bạn rất nhiều Archie.bpgc –

+1

câu trả lời hay. cải tiến nhỏ: sử dụng một thay vì một để làm cho mục tiêu của bạn rõ ràng hơn trong XML của bạn. – PeteH

3

cho layout_weight cho mọi Button 1, nó sẽ chia tất cả không gian

+0

nhưng biểu tượng sẽ được kéo dài! –

4

Hãy thử này ...

<Button 
     android:id="@+id/btnFacebook" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/btn_facebook" /> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="3" /> 

    <Button 
     android:id="@+id/btnYoutube" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/btn_youtube" /> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="3" /> 

    <Button 
     android:id="@+id/btnTwitter" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/btn_twitter" /> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="3"/> 

    <Button 
     android:id="@+id/btnPintrest" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/btn_pintrest" /> 
+0

no deepzz tôi đã thử mã của bạn nhưng nó sẽ trông giống như layout_weight = "1" –

+0

@SiddhpuraAmit: Hãy thử đưa ra chiều rộng 0dp thay vì wrap_content cho những bố cục đó – Deepzz

3

tôi sẽ đi với một Layout bảng và có strechColums = "0". Khác nếu bạn muốn dính vào bố trí tuyến tính sau đó bạn đã thử ra space.

+0

u có thể cho tôi một chút mã số –

+0

Xin chào Chris u có thể đề xuất với strechColumns như thế nào tôi có thể làm điều đó –

4

thay thế tất cả các nút với

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:gravity="center" 
    > 
    <Button 
     android:id="@+id/btnFacebook" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:background="@drawable/btn_facebook" /> 
</RelativeLayout> 

ví dụ quấn mỗi nút với RelativeLayout với android:layout_weightandroid:gravity

5

Để thực hiện ý định của bạn rõ ràng hơn trong XML của bạn sử dụng một <Space> thay vì một <View> như sau:

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:background="@color/Blue" 
     android:orientation="horizontal" > 

     <Space 
      android:layout_width="0dp" 
      android:layout_height="1dp" 
      android:layout_weight="1" > 
     </Space> 

     <Button 
      android:id="@+id/btnFacebook" 
      android:layout_width="50dp" 
      android:layout_height="50dp" 
      android:background="@drawable/btn_facebook" /> 

     <Space 
      android:layout_width="0dp" 
      android:layout_height="1dp" 
      android:layout_weight="1" > 
     </Space> 

...and repeat with the rest of your buttons... 

</LinearLayout> 
Các vấn đề liên quan