2010-12-30 11 views
5

Ho una webview in una scrollview, quando l'Activity si carica, costringe la mia scrollview verso il basso (dove è la webview) una volta che la webview termina "loadData". Come posso evitare che ciò accada? Ho provato questo, ma salta lo schermo in alto e in basso, che non voglio:webview sta forzando la mia scrollview verso il basso

ScrollView scroll = (ScrollView)findViewById(R.id.detailsScroll); 
scroll.post(new Runnable() 
{ 
    @Override 
    public void run() 
    { 
     ScrollView scroll = (ScrollView)findViewById(R.id.detailsScroll); 
     scroll.fullScroll(ScrollView.FOCUS_UP); 
    } 
}); 
+2

Non si dovrebbe mettere un WebView in uno ScrollView. Le viste scorrevoli all'interno delle viste scorrevoli non funzionano. – Falmarri

+0

ok, quindi come dovrei farlo se il contenuto dell'attività è più grande dello schermo? – steve

+0

... e non è questo ciò che sta facendo admob? Sembra che la webview stia diventando attiva una volta caricato il contenuto, il che sta causando il salto della scrollview. – steve

risposta

5

Creare un costume ScrollView con questo metodo:

@Override 
public void requestChildFocus(View child, View focused) { 
    if (child instanceof WebView) return; 
} 
10

La risposta di fhucho è OK per interrompere la visualizzazione Web dallo scorrimento verso il basso. Ma perderete tutta l'accessibilità con trackball, ecc. Quindi ho trovato un miglioramento:

public class MyScrollView extends ScrollView { 

    @Override 
    public void requestChildFocus(View child, View focused) { 
     if (focused instanceof WebView) 
      return; 
    super.requestChildFocus(child, focused); 
    } 
} 

Spero che aiuti!

+0

Sfortunatamente questo impedisce alla tastiera di mostrare quando si fa clic sui campi di input all'interno della webview. – spatialist

2

Per problemi legati messa a fuoco, ho trovato questo ha funzionato meglio, l'aggiunta di questi alla vostra WebView in XML:

android:focusable="false" 
    android:focusableInTouchMode="false" 

Anche se per la domanda effettiva chiesto, semplicemente aggiungendo un'altra vista che ottiene la messa a fuoco predefinita, invece di la WebView, avrebbe dovuto risolvere il problema. Penso che altri come me potrebbero trovarlo quando si cerca di affrontare altri problemi generali con una WebView all'interno di una ScrollView che si concentra su di essa. L'aggiunta di quanto sopra all'XML non interrompe il funzionamento dei collegamenti ipertestuali in WebView.

0

aggiungere questo per il layout principale

Android: descendantFocusability = "blocksDescendants"

Problemi correlati