2016-06-30 19 views
7

dal link this.InputTransparent = true non funziona in Xamarin Forms Android

false se l'elemento deve ricevere input; true se l'elemento non dovrebbe ricevere input e dovrebbe, invece, passare input all'elemento sottostante. Il valore predefinito è falso.

Quello che voglio è che il campo di inserimento non deve essere autorizzato a ricevere input dall'utente.

InputTransparent=true funziona bene su iOS ma non funziona su Android, consente comunque all'utente di dare input.

Ho provato IsEnabled=false ma questo cambia l'aspetto del mio campo di inserimento e non lo voglio.

È una specie di bug?

risposta

0

InputTransparent non funziona per Android. Ho creato semplicemente di rendering per stackLayout:

nel progetto PCL:

public class StackLayoutAdd :StackLayout 
{ 
} 

nel progetto Android:

[assembly: ExportRenderer(typeof(StackLayoutAdd), typeof(StackLayoutAddCustom))] 
..... 
public class StackLayoutAddCustom : VisualElementRenderer<StackLayout> 
{ 
    public override bool DispatchTouchEvent(MotionEvent e) 
    { 
     base.DispatchTouchEvent(e); 
     return !Element.InputTransparent; 
    } 
} 

Io uso questo nel mio XAML:

<StackLayoutAddCustom InputTransparent={Binding IsReadOnly}> 
    <Editor /> 
    .... 
</StackLayoutAddCustom> 

questo è il lavoro per il controllo dei bambini.

0

sulla base di this question: questo incendi continuamente mentre toccando lo schermo, in modo da applicare renderer personalizzato e sovrascrivere il DispatchTouchEvent

public override bool DispatchTouchEvent(MotionEvent e) 
     { 
      if (Element.InputTransparent) 
      { 
       return false; 
      } 
      return base.DispatchTouchEvent(e); 
     } 
Problemi correlati