Ich habe ein LinearLayout, das auf dem Bildschirm zentriert ist. Es hat eine Breite weniger als die Bildschirmbreite. Es gibt zwei Schaltflächen: Rechts-Pfeil und Links-Pfeil. Wenn der Benutzer die entsprechende Schaltfläche drückt, sollte das Layout seine Breite von der relevanten Seite erhöhen. Die andere Seite sollte ihre Position dort behalten.LinearLayout Breite von rechts oder links erhöhen
Gerade jetzt die Einstellung der Breite erhöht das Layout von beiden Seiten gleichermaßen. Das Layout muss anfangs zentriert sein und muss von beiden Seiten durch Benutzereingaben erweitert werden. (Anwendungsfall ist es, die Breite des relevanten Teils eines Bildes zu finden, dessen rechte und linke Seiten ungleiche Ränder haben, so dass der Benutzer sie mit meiner Technik markieren muss).
Ich benutze folgende um die Breite zu erhöhen, aber es hat das oben beschriebene Verhalten.
PS: Diese Funktionalität wurde in Tasker App seit seinen frühen Tagen implementiert; so ist es möglich.
EDIT: Hier ist das Layout.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:gravity="top"
android:layout_gravity="top"
android:id="@+id/iv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="visible" />
<LinearLayout
android:id="@+id/llRightLeft"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center">
<Button
android:id="@+id/bLeft"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LEFT" />
<Button
android:id="@+id/bRight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RIGHT" />
</LinearLayout>
<LinearLayout
android:layout_gravity="center_horizontal"
android:id="@+id/llCropOverlay"
android:layout_width="match_parent"
android:layout_height="70dp"
android:background="@color/colorCropOverlay"
android:orientation="vertical" />
</FrameLayout>
</LinearLayout>
Die letzte Linearlayout (llCropOverlay) angepasst werden soll. Beachten Sie, dass ich die Breite programmatisch auf 300 ändere, bevor ich die Größe der Schaltflächen ändere, um zu testen, ob die Schaltflächen funktionieren.
Schreiben Sie das vollständige Layout. Es gibt Möglichkeiten, dies zu tun, aber es ist nicht nur eine Frage Ihrer Layout-Parameter, sondern wie Sie in Ihrem Elternteil ausgelegt sind. –
posted den XML-Code – Usman
Wie wäre es, anstatt die Breite des Layouts zu ändern, ändern Sie die Ränder? 'match_parent' + L-margin> R-margin wenn du es richtig verschieben/erweitern willst. (gleich zu simulieren, zentriert) – TWL