Ich verwende SlidingTabs
, um zwei Registerkarten zu erstellen. Die Benutzeroberfläche der Registerkarte sollte so aussehen -
Wenn die erste Registerkarte ausgewählt ist
Wenn die zweite Registerkarte ausgewählt ist.
(Bitte beachten Sie die geraden Ecken des blauen Rechtecks)
Ich verwende den folgenden Selektor, um die oben gezeigte Benutzeroberfläche zu erstellen.
%Vor% round_corner_rectangle
s Code ist wie folgt -
login_background
ist die dunkelblaue Farbe. Mit dem obigen Code bekomme ich Folgendes:
Ich kann natürlich den corner
-Eintrag von round_corner_rectangle
entfernen, um den dunkelblauen Hintergrund gerade statt rund zu erhalten. Wenn ich die rechte Seite des blauen Rechtecks gerade mache, wenn das andere Register ausgewählt ist, ist das Rechteck auf der falschen Seite gerundet.
Was soll ich tun, um die Benutzeroberfläche wie im ersten Bild angezeigt zu bekommen?
Aktualisierung: - Wie Sie aus meinem Code sehen können, habe ich keine Probleme beim Erstellen von runden Ecken. Das Problem besteht darin, gerade Ecken auf der ausgewählten Registerkarte zu haben. Wenn ich einfach runde Ecken hinzufüge, wenn eine zweite Registerkarte ausgewählt ist, sind die Ecken auf der falschen Seite abgerundet.
Ok, erstellen Sie einfach dieses einfache rechteckige, drawbare XML. und Mach dir keine Sorgen über die Ecken, die wir dynamisch erstellen werden.
tabbackground.xml
%Vor%Wenn Sie jetzt den Tab wechseln. Sie müssen die Position der ausgewählten Registerkarte mithilfe von Listenern in der ausgewählten TabPosition-Variablen abrufen. Ich schreibe nicht Fullcode, nur um dir ein Skelett zu geben
%Vor%das habe ich bei Tastenklick versucht
Dieser Code funktioniert auf Android 4.0 und höher und liefert Ihnen das von Ihnen erwähnte Ergebnis und bewertet den Code nicht mit der Vorschau in Android Studio.
%Vor%%Vor%
Bearbeiten 1: Eine andere Lösung für Ihr Problem kann mit einem 9-Patch Image gelöst werden.
Bearbeiten Sie 2: Ссылка
Ihre linke Registerkarte (Schaltfläche) in xml:
%Vor%für die rechte Registerkarte (Schaltfläche) ändern Sie es folgendermaßen:
%Vor%und verwende es in deinem XML-Selektor.
Haben Sie versucht, Ihr dunkelblaues Rechteck mit allen geraden Ecken zu gestalten und Ihre beigen Ecken so zu gestalten, dass sie das Rechteck überlappen, so dass gerade Ecken nicht sichtbar sind? Dadurch sollte es funktionieren wie Sie wollen.
Eine andere mögliche Lösung ist die Verwendung einer Art von Drittanbieter-Bibliothek wie
Sie können auch diese Website durchsuchen, um Bibliotheken zu finden:
Verwenden Sie den folgenden Code in der Datei gerundet_corner.xml im Zeichenordner
%Vor%und verwenden Sie Folgendes in der Datei activity_main.xml
%Vor%das ist es
Tags und Links android android-layout android-tabs android-selector pagerslidingtabstrip