2015-02-18 3 views
0

Я новичок в андроиде. Я создаю примерную телефонную книгу с использованием eclipse. У меня мало прав на редактирование и кнопки с настройками в моем макете. Но когда я запускаю проект, я не вижу кнопки в нижней части макета, поэтому я включил свой основной линейный макет в Scrollview. но после того, как линейная компоновка стала намного больше по высоте. Я попытался изменить его размер в XML-файле, но он не работает сразу после изменения размера макета, который он автоматически изменяет размер до прежнего размера. вот мой код, если кто-то может помочь мне. Маленькая помощь очень ценится.прокручиваемый макет не работает

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="466dp" 
android:layout_gravity="center_vertical" > 

<LinearLayout 
    android:id="@+id/LinearLayout2" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/back" 
    android:orientation="vertical" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:scrollbarAlwaysDrawVerticalTrack="false" 
    android:scrollbarStyle="insideOverlay" 
    android:scrollbars="vertical" 
    tools:context="com.nadusha.phonebook.MainActivity" > 

    <LinearLayout 
     android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:layout_marginBottom="10dp" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Contact Info" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textColor="#FFFFFF" /> 

</LinearLayout> 



<LinearLayout 
    android:layout_marginBottom="8dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Name" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:textColor="#FFFFFF" /> 

</LinearLayout> 

<LinearLayout 
    android:id="@+id/nameTextLayout" 
    android:orientation="horizontal" 
    android:layout_marginBottom="15dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    > 

    <EditText 
     android:id="@+id/nameTxt" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:inputType="textPersonName" /> 
    <requestFocus /> 

</LinearLayout> 

<LinearLayout 
    android:layout_marginBottom="8dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Mobile" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:textColor="#FFFFFF"/> 

</LinearLayout> 

<LinearLayout 
    android:layout_marginBottom="15dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <EditText 
     android:id="@+id/mobileNoTxt" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:inputType="phone" > 


    </EditText> 

</LinearLayout> 

<LinearLayout 
    android:layout_marginBottom="8dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textView5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Home" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:textColor="#FFFFFF" /> 
</LinearLayout> 

<LinearLayout 

    android:layout_marginBottom="15dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <EditText 
     android:id="@+id/homeNoTxt" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:inputType="phone" /> 

</LinearLayout> 



<LinearLayout 
    android:layout_marginBottom="8dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textView4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="E-Mail " 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:textColor="#FFFFFF" /> 

</LinearLayout> 

<LinearLayout 
    android:layout_marginBottom="15dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <EditText 
     android:id="@+id/emailTxt" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:inputType="textEmailAddress" /> 

</LinearLayout> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <Button 
     android:id="@+id/saveBtn" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Save" 
     android:textColor="#FFFFFF"/> 

    <Button 
     android:id="@+id/cancelBtn" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Cancel" 
     android:textColor="#FFFFFF" /> 


     <Button 
     android:id="@+id/viewBtn" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="ViewContact" 
     android:textColor="#FFFFFF" /> 

</Linearlayout> 
</LinearLayout> 

+0

Попробуйте изменить высоту прокрутки к match_parent – Fahim

ответ

0

Вы должны установить Scrollview layoutWeight 1 и высотой до 0. Это будет гарантировать, что ваш Scrollview будет принимать только оставшееся пространство на экране. Вот пример моего приложения:

<?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" 
    > 

    <ScrollView 
     android:id="@+id/scrollView2" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:clickable="false" 
     android:fadeScrollbars="false" 
     android:layout_weight="1"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:padding="5dp"> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:padding="5dp"> 

       <TextView 
        android:id="@+id/menoLabel" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="2" 
        android:text="@string/emergencySMSMeno"/> 

       <EditText 
        android:id="@+id/menoEdit" 
        style="@style/editText" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:ems="10" 
        android:inputType="textPersonName" 
        android:textColor="#000"/> 
      </LinearLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:padding="5dp" 
       android:weightSum="3"> 

       <TextView 
        android:id="@+id/pohlavieLabel" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="2" 
        android:text="@string/emergencySMSPohlavie"/> 

       <Spinner 
        android:id="@+id/spinnerPohlavie" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="1"/> 

      </LinearLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:padding="5dp"> 

       <TextView 
        android:id="@+id/vekLabel" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="2" 
        android:text="@string/emergencySMSVek"/> 

       <EditText 
        android:id="@+id/vekEdit" 
        style="@style/editText" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:ems="10" 
        android:inputType="numberDecimal" 
        android:textColor="#000"/> 
      </LinearLayout> 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:padding="5dp"> 

       <TextView 
        android:id="@+id/vahaLabel" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="2" 
        android:text="@string/emergencySMSVaha"/> 

       <EditText 
        android:id="@+id/vahaEdit" 
        style="@style/editText" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:ems="10" 
        android:inputType="numberDecimal" 
        android:textColor="#000"/> 
      </LinearLayout> 

      <TextView 
       android:id="@+id/alergieLabel" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="2dp" 
       android:padding="5dp" 
       android:text="@string/emergencySMSAlergie"/> 

      <EditText 
       android:id="@+id/alergieEdit" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:inputType="text" 
       android:textColor="#000"/> 

      <TextView 
       android:id="@+id/chorobyLabel" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="2dp" 
       android:padding="5dp" 
       android:text="@string/emergencySMSChoroby"/> 

      <EditText 
       android:id="@+id/chorobyEdit" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:inputType="text" 
       android:textColor="#000"/> 

      <TextView 
       android:id="@+id/zraneniaLabel" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="2dp" 
       android:padding="5dp" 
       android:text="@string/emergencySMSZranenie"/> 

      <EditText 
       android:id="@+id/zraneniaEdit" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:ems="10" 
       android:inputType="textMultiLine" 
       android:lines="3" 
       android:textColor="#000"/> 

      <TextView 
       android:id="@+id/polohaLabel" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="2dp" 
       android:padding="5dp" 
       android:text="@string/emergencySMSAktualnaPoloha"/> 

      <EditText 
       android:id="@+id/polohaEdit" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:inputType="text" 
       android:textColor="#000"/> 

     </LinearLayout> 
    </ScrollView> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:padding="5dp"> 

     <Button 
      android:id="@+id/odoslatButton" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/send" 
      android:layout_weight="1"/> 

     <Button 
      android:id="@+id/zrusitButton" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/emergencySMSZrusit" 
      android:layout_weight="1"/> 
    </LinearLayout> 

</LinearLayout> 

Он показывает scrollView и две кнопки внизу. Я не совсем уверен, что вы хотите сделать, но насколько я вижу, вы ошибаетесь. ScrollView может принимать только один дочерний элемент, но вы установили scrollview в качестве основного родителя, но затем вы помещаете в него больше дочернего элемента.

Также вы делаете еще одну ошибку. Вам не нужно использовать линейные макеты (в большинстве случаев), если у них есть только один ребенок. Это плохо для производительности.

+0

Это сработало. большое спасибо. Я буду благодарен, если вы можете кратко рассказать о проблеме использования линейных макетов с одним ребенком – slenderm4n

+0

, этот сайт объясняет это с помощью https://developer.android.com/training/improving-layouts/optimizing-layout.html и если вы хотите получить дополнительную информацию о том, как повысить производительность пользовательского интерфейса, посетите этот файл https://developer.android.com/training/improving-layouts/index.html – horin

0

Вы можете попробовать изменить

android:layout_height="466dp" 

к

android:layout_height="wrap_content" 

или

android:layout_height="match_parent" 
+0

, и я попробовал их все. но это не сработало, как я ожидал – slenderm4n

0

Изменение значения атрибута layout_height в match_parent так что ScrollView занимают весь экран и следовательно, разрешить прокрутку. Правильный код:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:layout_gravity="center_vertical" > 

<LinearLayout 
    android:id="@+id/LinearLayout2" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/back" 
    android:orientation="vertical" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:scrollbarAlwaysDrawVerticalTrack="false" 
    android:scrollbarStyle="insideOverlay" 
    android:scrollbars="vertical" 
    tools:context="com.nadusha.phonebook.MainActivity" > 

    <LinearLayout 
     android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:layout_marginBottom="10dp" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Contact Info" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textColor="#FFFFFF" /> 

</LinearLayout> 



<LinearLayout 
    android:layout_marginBottom="8dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Name" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:textColor="#FFFFFF" /> 

</LinearLayout> 

<LinearLayout 
    android:id="@+id/nameTextLayout" 
    android:orientation="horizontal" 
    android:layout_marginBottom="15dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    > 

    <EditText 
     android:id="@+id/nameTxt" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:inputType="textPersonName" /> 
    <requestFocus /> 

</LinearLayout> 

<LinearLayout 
    android:layout_marginBottom="8dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Mobile" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:textColor="#FFFFFF"/> 

</LinearLayout> 

<LinearLayout 
    android:layout_marginBottom="15dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <EditText 
     android:id="@+id/mobileNoTxt" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:inputType="phone" > 


    </EditText> 

</LinearLayout> 

<LinearLayout 
    android:layout_marginBottom="8dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textView5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Home" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:textColor="#FFFFFF" /> 
</LinearLayout> 

<LinearLayout 

    android:layout_marginBottom="15dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <EditText 
     android:id="@+id/homeNoTxt" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:inputType="phone" /> 

</LinearLayout> 



<LinearLayout 
    android:layout_marginBottom="8dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textView4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="E-Mail " 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:textColor="#FFFFFF" /> 

</LinearLayout> 

<LinearLayout 
    android:layout_marginBottom="15dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <EditText 
     android:id="@+id/emailTxt" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:inputType="textEmailAddress" /> 

</LinearLayout> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <Button 
     android:id="@+id/saveBtn" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Save" 
     android:textColor="#FFFFFF"/> 

    <Button 
     android:id="@+id/cancelBtn" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Cancel" 
     android:textColor="#FFFFFF" /> 


     <Button 
     android:id="@+id/viewBtn" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="ViewContact" 
     android:textColor="#FFFFFF" /> 

</Linearlayout> 
</LinearLayout> 
Смежные вопросы