Dopo API 17/supporto RTL è stato rilasciato, ho aggiunto il seguente al mio manifestocontrastanti messaggi lint per quanto riguarda l'utilizzo paddingStart
android:supportsRtl="true"
che ha causato Lint di darmi giustamente questi avvertimenti ovunque ho avuto paddingLeft/Proprio nel mio punto di vista :
Considerare l'aggiunta di Android: paddingStart = "8DP" per supportare al meglio i layout da destra a sinistra
Considerare l'aggiunta di Android: paddingEnd = "8DP" per supportare al meglio i layout da destra a sinistra
ho fatto questo seguendo la guida trovato in questo android-developers blogpost, il che implica che non abbiamo bisogno di creare un nuovo file layout-v17, ma potrebbe semplicemente utilizzare sia paddingStart/End che gli attributi paddingLeft/Right (i left/right erano necessari per continuare a supportare un minSdk inferiore).
ho appena fatto l'aggiornamento ad Android Studio 1.0 dalla versione Beta precedente, e sto notando un nuovo errore residuo di stoffa in cui si afferma:
- attributo paddingStart si fa riferimento qui può risultare in un incidente su alcuni dispositivi specifici di età superiore a 17 API (min corrente è 7)
e la correzione suggerita è:
Resource Override nel layout-V17
che ha un senso. Tuttavia, dopo aver creato layout-v17 e rimosso il padding non utilizzatoStart/End dalla cartella di layout principale, gli avvisi di Lint originali sono riapparsi dicendo che dovrei usare paddingStart/End. Sembra che non capisca che ho sovrascritto i file in layout-v17.
Qualcuno sa come risolvere i messaggi di errore/avviso Lint in conflitto? So che posso solo avvertire l'avviso tools:ignore
, ma spero in una soluzione "corretta".
Edit (1/19/15): C'è un android issue che immagino ha portato al nuovo errore di lanugine che viene aggiunto ad Android Studio. Ciò suggerisce che il "crash su alcuni dispositivi specifici" si riferisce a una manciata di tablet Samsung su API16 in cui paddingStart ha una propria definizione e si blocca in tal modo quando tenta di analizzare "8dp".
Alcune persone nel link precedente hanno suggerito di utilizzare la cartella layout-ldrtl per gestire la direzione rtl, anziché utilizzare paddingStart e paddingEnd.
Ho anche suggerito altrove di ignorare Factory2 di LayoutInflator ogni volta che trovi che l'utente ha un tablet API16 e quindi imposta manualmente gli attributi di tutte le visualizzazioni. Questo funzionerà sicuramente, ma sembra estremamente "manuale".
Purtroppo non ho accesso a uno di questi dispositivi che si bloccano, quindi non riesco a verificare perché non ho trovato nessuno online suggerendo semplicemente di inserire paddingStart in/layout-v17/cartella e paddingLeft in/layout/? I tablet Samsung API16 in qualche modo continuano a bloccarsi nonostante PaddingStart sia presente solo in layout-v17?
È solo un suggerimento. Spero che tu abbia risolto il tuo problema ormai. –