2012-03-28 3 views
31

У меня проблема с тем, что прокрутка андроида начинает скрывать пару текстовых просмотров. У меня в верхней части моего макета, я нашел другого человека на этом самом сайте, у которого была эта проблема, и смог получить помощь, к сожалению, тот, кто помог им, действительно не сказал, что это исправляет, может ли кто-нибудь сказать мне, что здесь исправить?Android scrollview скрывает верхний контент в макете

android scrollview hiding top content

любая помощь будет огромным вот мой XML-код:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="@color/title_color_dark_transparent" > 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="center_vertical|center_horizontal|center" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_gravity="center" 
     android:layout_marginLeft="8dp" 
     android:layout_marginRight="8dp" 
     android:layout_marginTop="5dp" 
     android:orientation="vertical" 
     android:paddingTop="5dp" > 

     <TextView 
      android:id="@+id/saysomething" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/loading" 
      android:textColor="#FFFFFF" 
      android:textSize="30dp" /> 

     <TextView 
      android:id="@+id/saysomethinginfo" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="5dp" 
      android:text="@string/loading" 
      android:textColor="#FFFFFF" 
      android:textSize="17dp" /> 

     <EditText 
      android:id="@+id/tweetedittext" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/edit_text" 
      android:gravity="top" 
      android:hint="@string/edittext_hint" 
      android:inputType="textCapSentences|textMultiLine|textAutoCorrect|textAutoComplete" 
      android:lines="3" 
      android:textAppearance="@style/TextAppearance.EditText" 
      android:textSize="17dp" /> 

     <RelativeLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="5dp" 
      android:layout_marginTop="5dp" 
      android:orientation="horizontal" > 

      <Button 
       android:id="@+id/photobutton" 
       style="@style/TextAppearance.Button" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="@drawable/button_background" 
       android:onClick="photobuttonClicked" 
       android:text="@string/photobuttontext" 
       android:textSize="15dp" /> 

      <TextView 
       android:id="@+id/charactersremaining" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:layout_centerInParent="true" 
       android:layout_toLeftOf="@+id/posttweetbutton" 
       android:text="@string/characters" 
       android:textColor="#FFFFFF" 
       android:textSize="20dp" /> 

      <Button 
       android:id="@id/posttweetbutton" 
       style="@style/TextAppearance.Button" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentRight="true" 
       android:layout_marginLeft="2dp" 
       android:background="@drawable/button_background" 
       android:onClick="posttweetbuttonClicked" 
       android:text="@string/postbuttonstext" 
       android:textSize="15dp" /> 
     </RelativeLayout> 
    </LinearLayout> 

    <TextView 
     android:id="@+id/photodetails" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="" 
     android:textColor="#FFFFFF" 
     android:textSize="17dp" 
     android:layout_marginTop="8dp" 
     android:layout_marginLeft="8dp" /> 

    <ImageView 
     android:id="@+id/iv_pic" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="8dp" 
     android:layout_marginRight="8dp" /> 
</LinearLayout> 

</ScrollView> 
+1

Я не вижу никаких TextViews выше вашего ScrollView. Вам также не хватает тега закрытия в ScrollView. – kabuko

+0

похоже, что я ошибочно не комментировал закрывающий тег для scrollview, но его там сейчас, текстовые просмотры - это первые, которые вы видите внутри линейного макета, размещение текстовых просмотров вне линейного макета дает мне ошибку, потому что, по-видимому, вы не можете больше чем один ребенок в scrollview –

+0

Я думал, что вы не хотите, чтобы ваш ScrollView скрывал эти TextViews? Может быть, вы должны объяснить, на что вы действительно хотите, чтобы макет выглядел, потому что мне это не очень понятно. – kabuko

ответ

92

Найденный! Это android:layout_gravity="center" в LinearLayout, что является преступником. Просто удалите это, и все будет хорошо.

+0

Спасибо за это - работал на меня в экземпляр этой проблемы. –

+0

@ Edmund Rojas: Примите правильный ответ. – Deepzz

+5

Работает, и если вам все еще нужно сосредоточить взгляд внутри, используйте это обходное решение: http://pivotallabs.com/centering-a-view-within-a-scrollview/ – Takhion

0

Ваш внешний LinearLayout имеет свою высоту устанавливается на match_parent. Вместо этого оно должно быть wrap_content. Внутренний LinearLayout также должен иметь высоту wrap_content.

+0

Я пробовал это, но, к сожалению, не работал:/ –

0

Добавить андроид: layout_weight = "1" на ваш scrollview. Это решит проблему. Что-то вроде этого

<ScrollView 
     android:id="@+id/scroll" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:layout_weight="1" > 
3

Вы пробовали настройки

андроид: fillViewport = "истинный"

в ScrollView?

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:fillViewport="true" 
    android:background="@color/title_color_dark_transparent" > 
+0

Он работал здесь, спасибо –

1

Вы можете прокручивать программно.

  1. Remove андроида: layout_gravity свойство из XML
  2. Добавить прокруткой onResume функции

Часть кода из моего проекта:

protected void onResume() { 
    super.onResume(); 
    final HorizontalScrollView svInMenu = (HorizontalScrollView) findViewById(R.id.svInMenu); 
    ViewTreeObserver vto = svInMenu.getViewTreeObserver(); 
    vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
     public void onGlobalLayout() { 
      svInMenu.scrollTo(svInMenu.getRight()/4, 0); 
     } 
    }); 
} 

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

  • Нет связанных вопросов^_^