Es gibt viele Probleme mit Layouts aufbläst, die durch nicht korrekt mit WatchViewStub verursacht werden. Ich sehe keinen Code genau wissen, aber ein weit verbreitetes Problem ist, wenn Sie einen Listener für Einsätze Uhr registrieren, so dass Sie überprüfen können, ob es rund oder quadratisch in Ihrem onApplyWindowInsets Handler ist:
final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
stub.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() {
@Override
public WindowInsets onApplyWindowInsets(View view, WindowInsets windowInsets) {
// Need to also call the original insets since we have overridden the original
// https://developer.android.com/reference/android/view/View.OnApplyWindowInsetsListener.html
stub.onApplyWindowInsets(windowInsets);
// this is where you would check the WindowInsets for isRound()
return windowInsets;
}
});
I Fälle sehen, wo Die Leute vergessen, die windowInsets zurückzugeben, oder vergessen, stub.onApplyWindowInsets() aufzurufen. Dies hat den Effekt, anstelle eines runden Layouts ein quadratisches Layout zu geben.
Außerdem gab es einen Fehler mit dem im SDK integrierten AndroidWearRound-Emulator. Es gab drei von ihnen, und wenn Sie die falsche erstellt haben, würde es tatsächlich einen quadratischen Emulator erstellen. Stellen Sie sicher, wenn Sie drei Emulatoren haben, wählen Sie die Sekunde eins. Dieser Fehler wurde in den neuesten Android SDK Tools 23.0.4 behoben, aber möglicherweise haben Sie eine ältere Version.
Können Sie uns den Code zeigen, den Sie um den WatchViewStub machen?
Ich hatte tatsächlich das gleiche Problem auf meiner Moto 360. Ich bin interessiert zu wissen, was jemand anderes getan hat, um dies zu lösen. – kentarosu
abonnieren für diese Frage. Als eine hässliche Problemumgehung, können Sie Ihr rundes Layout wie folgt vorübergehend festlegen: 'app: rectLayout =" @ layout/round_activity_my' " Und es würde Ihr rundes Layout laufen, denken, dass es als eine rect bereitgestellt wird ... –
I hab 'extrem billig gearbeitet. Mein Code ist alles gut für rect, also nachdem ich zugesagt habe, überschreibe ich gerade meine rect-Layouts mit runden Layout-Stil-Code, und sobald ich glücklich bin, kopiere ich und füge meinen runden Layout-Code in die eigentliche round_layout_activity ein und Setzen Sie die geänderte Datei rect_layout zurück. Blah ... –