2012-01-05 7 views
6

Voglio implementare un menu popup con effetti complessi, uno dei quali è quello di supportare lo scorrimento. Sembra che PopupMenu e AlertDialog non possano soddisfare il requisito di cui ho bisogno. Così ho provato PopupWindow con ScrollView.Nessun effetto di scorrimento con ScrollView in PopupWindow

Innanzitutto, ho preparato un layout che ha una semplice strcture proprio come quello che mostra ApiDemo:

ScrollView 
    LinearLayout with Vertical attribute 
     TextView 
     TextView 
     TextView 
     ... 

Secondariamente, I nuova un PopupWindow con questa disposizione e 200width/300height, vederlo in qualche luogo con showAtLocation() .

Posso rendere la barra di scorrimento visualizzata e ha effetto di scorrimento, ma TextViews in LinearLayout NON scorrono (sono in posizione fissa)!

Qualcosa non va, ma non ho alcun senso. (android3.0)

Grazie per qualsiasi uomo dal cuore caldo che può darmi qualche consiglio.

-_- !!

risposta

0

Credo che la vostra esigenza può essere esaudito dal dialogo provare il codice che ho dato

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

Ho anche affrontato problema simile. Alcuni come il layout relativo avvolgente in scrollview non funziona per la finestra popup.

Ho provato a racchiudere viste individuali sotto scrollview e ha funzionato per me. Vi preghiamo di dare un'occhiata qui sotto. Spero che questo aiuti

<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> 
Problemi correlati