2015-07-28 4 views
0

В Linear макете пытается центрирование кнопки, но я не могу, что кодирование для центрирования кнопки предложения, пожалуйста,андроид расположения ЛИНЕЙНЫХ центрирование кнопки

это мое Линейного расположение

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="400dp" 
    android:orientation="vertical" > 

    <HorizontalScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 

     <LinearLayout 
      android:id="@+id/table" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="horizontal" > 
      <Button 
       android:layout_width="98" 
       android:layout_height="58" 
       android:layout_gravity="center" 
       android:text="S T A G E" 
       android:id="@+id/stage1" 
       android:background="#65f077cc" /> 

     </LinearLayout> 
    </HorizontalScrollView> 

Спасибо advnce

+0

android: layout_height = "wrap_" не является полным, должно быть "wrap_content", но это только опечатка, я думаю? – milez

+0

Я верю, что он все еще не получил кнопку центра –

+0

Вы положили 'gravity =" center "на кнопку, вы должны поместить ее в LinearLayout, как в моем ответе – milez

ответ

1

Сначала удалите вещи, которые могут повлиять на него. Ориентации лучше всего определять на максимально высоком уровне, например, у вашего родителя LinearLayout. От Button, удалите (сейчас добавьте позже, если вы все еще думаете, что хотите их) android:orientation="horizontal" и android:layout_gravity="right|center_vertical".

Также установите высоту кнопки android:layout_height="wrap_content".

Для LinearLayout, добавьте

android:gravity="center" 

Здесь хорошо читать на различиях gravity и layout_gravity: http://sandipchitale.blogspot.fi/2010/05/linearlayout-gravity-and-layoutgravity.html

Кроме того, fill_parent является устаревшим, так что вы должны переключиться на match_parent вместо этого, в случае необходимости.

Edit: окончательный макет

<LinearLayout 
     android:id="@+id/table" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="center" 
     android:orientation="horizontal" > 
     <Button 
      android:layout_width="98" 
      android:layout_height="58" 
      android:text="S T A G E" 
      android:id="@+id/stage1" 
      android:background="#65f077cc" /> 
+0

Чувак !!! Это должен быть комментарий –

0

попробовать это. Добавьте вес к кнопке. андроида: вес = «1»

+0

все еще не беспокоит –

+0

попытаться использовать relativeLayout, если LinearLayout не является принуждением и использует свойство layout_gravity – Ketan

+0

thank для вашего предложения ketan –

0

Если вы хотите отцентрировать элемент в центре экрана используйте RelativeLayout, поскольку линейная компоновка является использование для отображения элементов в строке.

Как это

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

<Button 
    android:id="@+id/stage1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    android:background="#65f077cc" 
    android:text="S T A G E" /> 


</RelativeLayout> 

Если вы хотите, чтобы центрировать элемент в центре строки используйте пример ниже.

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

<Button 
    android:id="@+id/stage1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:background="#65f077cc" 
    android:text="S T A G E" /> 

</LinearLayout> 

Хотя если вы строги с линейной компоновки ТОЛЬКО чем вы можете попробовать это.

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

<Button 
    android:id="@+id/stage1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="#65f077cc" 
    android:text="S T A G E" /> 

</LinearLayout> 
+0

Почему линейная компоновка только для строк? – milez

+0

спасибо Fasiha.Its working.sorry для позднего ответа. Мне просто нужно уточнить, почему его невозможно в линейной компоновке. –

+0

LinearLayout означает, что вы можете выравнивать представления по одному. Я использовал строку слов, потому что представления выравниваются один за другим. вот почему относительный макет более эффективен для этого сценария. где, когда я обновляю свой ответ и добавляю линейную компоновку с свойством center. – Fasiha

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