Wie kann ich View in meinem Layout aufblasen?
-
28-10-2019 - |
Frage
Aufblasen der Ansicht im Layout, in der alle meine UI-Elemente im Layout sichtbar sein sollen. Ich versuche diese Zeilen, aber es funktioniert nicht. Ich kann mein Hintergrundbild, meine Schaltfläche und andere Bilder nicht sehen.
MyView view1= new MyView (this);
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); view1= (MyView) inflater.inflate(R.layout.main, null);
Bitte helfen Sie. Vielen Dank im Voraus.
Lösung
Verwenden Sie für das, was Sie tun,
setContentView(R.layout.main);
Der Grund dafür, dass Sie Ihre Ansicht nach dem Aufblasen nicht erhalten, ist, dass Sie diese Ansicht irgendwo in die aktuelle Ansicht einfügen müssen.Derzeit ist Ihre aufgeblasene Ansicht verwaist.
Andere Tipps
das funktioniert normalerweise ...
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view1= inflater.inflate(R.layout.main, null);
oder
LayoutInflater inflater = LayoutInflater.from(getApplicationContext);
View view1= inflater.inflate(R.layout.main, null);
und fügen Sie diese Ansicht dann der Inhaltsansicht hinzu.
Aktualisiert:
Angenommen, Sie müssen eine Linie in Ihrer main.xml zeichnen, möchte ich Ihnen diesen Vorschlag machen.Anstatt zur Laufzeit eine Linie zu zeichnen, indem Sie die View-Klasse erweitern, erstellen Sie eine View in XML wie folgt
<View android:layout_width = "fill_parent"
android:layout_height = "2dp" //assuming you want line of 2dp thickness
android:background= "@android:color/black"/> // define your desired color here
hoffe es hilft ..
Das hat endlich funktioniert.
getWindow().addContentView(view1,
new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT));