2015-01-03 11 views

Odpowiedz

7

poniższy kod doda nakładkę na wierzchu wszystko:

View v1 = new View(this);  
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
1000, 
50, 
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, 
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | 
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, 
PixelFormat.OPAQUE); 

params.gravity = Gravity.BOTTOM; 
WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE); 
wm.addView(v1, params); 

zablokować dotykowy zdarzenie albo trzeba zmienić flagę lub poniżej kod zadziała:

protected boolean onTouchEvent (MotionEvent me) { 
    return true; 
} 

Na v1 byś zrobił importu:

import android.view.View.OnTouchListener; 

następnie ustawić onTouchListener:

v1.setOnTouchListener(new OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     return true; 
    } 
}) 
+0

Jak ja nie pamiętają dotykowy słuchacza? +1 – jvrodrigues

12

jeśli nakładka nie wystąpią zdarzenia dotykowym, a następnie zdarzenia są przekazywane do podstawowego widoku, tak aby zablokować dotykowy zdarzenia w widokach poniżej niej uczynić nakładki dotykalne android:clickable="true"

+0

To świetnie, działa na mnie, dzięki – li2

+0

Nicea podstęp, pracował dla mnie dzięki –

1

umieścić przycisk na zestawie nakładki layer.then że przycisk android: tło = „@ null” blokować dotykowy zdarzenie widzenia poniżej it..hope rozwiązać problem

7

Poniższy kod zadziałał u mnie. Dodałem android:clickable="true", aby zablokować zdarzenia dotykowe w innych widokach poniżej.

To jest przykład z paskiem postępu wewnątrz nakładki. Jeśli nie chcesz ProgressBar, możesz bez niego korzystać z FrameLayout.

<FrameLayout 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/progress_overlay" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:alpha="0.4" 
      android:animateLayoutChanges="true" 
      android:background="@android:color/black" 
      android:visibility="gone" 
      android:clickable="true"> 

      <ProgressBar 
       style="?android:attr/progressBarStyleLarge" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:indeterminate="true"/> 

</FrameLayout> 
Powiązane problemy