Ich versuche einen Button an einem anderen Ort zu platzieren, indem ich das absolute Layout verwende. Ich verwende die folgende XML-Datei:
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/bcgrd">
<Button
android:id="@+id/start_challenge"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text = "Start Challenge"
android:textColor= "@color/light_gray"
android:background="@color/background">
</Button>
</AbsoluteLayout>
Die Java-Datei enthält den folgenden Code:
Button start_it = (Button)findViewById(R.id.start_challenge);
start_it.layout(200, 200, 200, 200);
aber nichts passiert (die "200er" sind nur für das beispiel. kann mir bitte jemand sagen was ich falsch mache.
Danke im Voraus.
Antworten:
0 für die Antwort № 1Was du falsch machst, ist AbsoluteLayout. Ernsthaft, du solltest es wirklich nicht benutzen; Versuchen Sie stattdessen, ein FrameLayout zu verwenden.
Um jedoch Ihre Frage zu beantworten, sollten Sie das Layout nicht aufrufen, sondern dies tun:
AbsoluteLayout.LayoutParams params = (AbsoluteLayout.LayoutParams)start_it.getLayoutParams();
params.x = 200;
params.y = 200;
start_it.setLayoutParams(params);
Oder mit weniger Code können Sie dies stattdessen tun:
start_it.setLayoutParams(new AbsoluteLayout.LayoutParams(
start_it.getWidth(), start_it.getHeight(), 200, 200));