2012-01-05 10 views
6

Chcę zaimplementować menu podręczne ze złożonymi efektami, jeden z nich jest wsparcie przewijanie. Wygląda na to, że PopupMenu i AlertDialog nie spełniają wymagań, których potrzebuję. Więc wypróbowałem PopupWindow z ScrollView.Nie przewijania efektu Scrollview w PopupWindow

Po pierwsze, przygotowaliśmy układ, który ma prostą strcture jak co pokazuje ApiDemo:

ScrollView 
    LinearLayout with Vertical attribute 
     TextView 
     TextView 
     TextView 
     ... 

wtórnie I NOWE PopupWindow z tego układu i 200width/300height, pokazać ją w gdzieś z showAtLocation() .

mogę przewijania wyświetlane i ma przewinąć efekt, ale TextView w LinearLayout NIE przewijania (są w stałej pozycji)!

Coś jest nie tak, ale nie ma sensu o nim. (android3.0)

Dzięki za ciepłe serca człowieka, który może dać mi kilka wskazówek.

-_- !!

Odpowiedz

0

Myślę, że wymóg może być spełniony przez Dialog spróbować kod dałem

protected void showInputDialog() { 
     final Dialog splRerDialog = new Dialog(getContext()); 
     splRerDialog.setTitle("Special request."); 

     ScrollView scroll = new ScrollView(getContext()); 

     LinearLayout lin = new LinearLayout(getContext()); 
     lin.setLayoutParams(new LayoutParams(350,200)); 
     lin.setGravity(Gravity.CENTER); 
     lin.setOrientation(LinearLayout.VERTICAL); 

     final EditText req = new EditText(getContext()); 
     req.setLayoutParams(new LayoutParams(300,300)); 
     lin.addView(req); 

     Button btn = new Button(getContext()); 
     btn.setText("Ok"); 
     btn.setLayoutParams(new LayoutParams(200,LayoutParams.WRAP_CONTENT)); 
     btn.setGravity(Gravity.CENTER); 

     btn.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View arg0) { 
       splRerDialog.dismiss(); 
      } 
     }); 
     lin.addView(btn); 

     scroll.addView(lin); 

     splRerDialog.addContentView(scroll, new LayoutParams(LayoutParams.WRAP_CONTENT,200)); 

     splRerDialog.show(); 
    } 
2

I również w obliczu podobnego problemu. Niektóre z tego, jak zawijanie względnego układu w scrollview nie działa dla popupwindow.

Próbowałem owijając poszczególne widoki pod Scrollview i pracował dla mnie. Proszę spojrzeć poniżej. Nadzieję, że to pomaga

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/container" 
android:layout_width="fill_parent" 
android:layout_height="match_parent" 
android:background="#eebd9c" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
> 
    <ScrollView 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_centerHorizontal="true" 
    android:layout_below="@+id/textView2" > 

    <TextView 
     android:id="@+id/textView9" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ellipsize="marquee" 
     android:ems="15" 
     android:gravity="fill_horizontal" 
     android:minLines="6" 
     android:scrollbars="vertical" 
     android:singleLine="false" 
     android:text="Multiline text" 
     android:textAppearance="?android:attr/textAppearanceSmall" /> 
    </ScrollView></RelativeLayout> 
Powiązane problemy