2015-07-10 3 views
0

Я пытаюсь заставить кнопку находиться в центре экрана и кнопку выхода из системы внизу. У меня есть кнопка, центрированная по вертикали, но она не будет располагаться горизонтально.Android Layout с пользовательской кнопкой

Что я делаю неправильно?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:orientation="vertical" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:padding="10dp" 
    android:weightSum="1"> 

<TextView 
    android:layout_width="match_parent" 
    android:textColor="#000000" 
    android:id="@+id/etEmailLabel" 
    android:layout_height="wrap_content" 
    android:textSize="20sp" 
    android:gravity="center" 
    android:textAlignment="center" /> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="150dp" 
    android:layout_marginBottom="20dp" 
    android:weightSum="1" 
    android:layout_weight="0.98"> 

    <Button 
     android:layout_width="291dp" 
     android:layout_height="273dp" 
     android:id="@+id/DataLog" 
     android:background="@layout/mybutton" 
     android:text="Log Location" 
     android:layout_gravity="center" /> 

</LinearLayout> 

<Button 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/bLogout" 
    android:text="Logout"/> 

</LinearLayout> 

Пользовательский код кнопки:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="50dp" 
    android:layout_width="50dp" 
    android:layout_gravity="center" 
    android:shape="oval"> 
    <solid android:color="#FFFFFF"/> 
    <stroke android:width="2sp" android:color="#fff" /> 
</shape> 
+0

Попробуйте использовать Относительную компоновку – HassanUsman

+0

Интересно, что удалили все центрирование. – Walorn

+0

Поскольку вы сначала используете Linear Layout, перетащите и отпустите кнопку там, где хотите. – HassanUsman

ответ

0

Я запутался, почему ваш LinearLayout высота меньше кнопки, но вы можете расположить его в центре, применяя гравитацию к родителю ViewGroup:

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="150dp" 
    android:layout_marginBottom="20dp" 
    android:weightSum="1" 
    android:gravity="center" 
    android:layout_weight="0.98"> 

    <Button 
     android:layout_width="291dp" 
     android:layout_height="273dp" 
     android:id="@+id/DataLog" 
     android:background="@layout/mybutton" 
     android:text="Log Location" /> 

</LinearLayout> 

Кроме того, вес и весSum на вашем LinearLayout не будут иметь никакого влияния.

+0

Итак, я понял это благодаря вам. Мне пришлось сосредоточить основное линейное расположение. Не совсем понятно, почему это так, но интересно, тем не менее. Спасибо! – Walorn

+1

NP, у остальной части вашего макета есть много вещей, которые не имеют никакого смысла, хотя я рекомендую узнать больше о ViewGroups. –

Смежные вопросы