2012-01-05 13 views
6

Quiero implementar un menú emergente con efectos complejos, uno de ellos es para admitir el desplazamiento. Parece que PopupMenu y AlertDialog no pueden cumplir con el requisito de lo que necesito. Así que probé PopupWindow con ScrollView.Sin efecto de desplazamiento con ScrollView en PopupWindow

En primer lugar, he preparado un diseño que tiene una strcture sencilla al igual que lo muestra ApiDemo:

ScrollView 
    LinearLayout with Vertical attribute 
     TextView 
     TextView 
     TextView 
     ... 

En segundo lugar, me nuevo un PopupWindow con esta disposición y 200width/300height, el documento presentado en algún lugar con showAtLocation() .

Puedo hacer que se muestre la barra de desplazamiento y tiene efecto de desplazamiento, pero las Vistas de texto en LinearLayout NO se desplazan (¡están en posición fija)!

Algo está mal, pero no tengo sentido. (android3.0)

Gracias a cualquier hombre de corazón cálido que pueda darme algunos consejos.

-_- !!

Respuesta

0

Creo que su requisito puede fullfilled de diálogo probar el código que he dado

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

también me enfrenté problema similar. De alguna manera, cómo ajustar el diseño relativo en scrollview no funciona para popupwindow.

Intenté envolver vistas individuales en scrollview y funcionó para mí. Por favor, eche un vistazo a continuación. Espero que esto ayude

<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> 
Cuestiones relacionadas