/ / एंड्रॉइड: "लेम्बी फ्लिप" में प्रोग्रामेटिक रूप से एक्सएमएल लेआउट बदल रहा है - एंड्रॉइड, एक्सएमएल, एंड्रॉइड लेआउट, एंड्रॉइड-व्यू

एंड्रॉइड: प्रोग्रामिंग रूप से एक्सएमएल लेआउट को "वामपंथी फ्लिप" में बदलना - एंड्रॉइड, एक्सएमएल, एंड्रॉइड लेआउट, एंड्रॉइड-व्यू

मैं अपने ऐप के उपयोगकर्ताओं को टॉगल करने की अनुमति देने की कोशिश कर रहा हूंयूआई मानक अभिविन्यास या "बायीं फ्लिप" होने के लिए। मुझे यकीन है कि एंड्रॉइड पर विचार करने के लिए मुझे एक समाधान का निम्न स्तर किस स्तर पर प्रोग्राम करने की ज़रूरत है, यह सुनिश्चित नहीं कर सकता है।

दृश्यमान, मानक अभिविन्यास होगा: मानक लेआउट

और बाएं फ्लिप अभिविन्यास होगा:यहां छवि विवरण दर्ज करें

तो, वर्तमान में मैं कोशिश करने के बारे में सोच रहा हूं कि एक मेनू बटन के ऑन टच () तर्क के भीतर, एक्सएमएल लेआउट, घटक द्वारा घटक का मैन्युअल पुनर्गठन है।

मुझे यह महसूस हो रहा है कि इससे भी आसान तरीका हो सकता है। कोई सुझाव? क्या दृश्य को पुनर्व्यवस्थित करने के लिए प्रोग्रामेटिक कॉल की एक श्रृंखला सबसे अच्छी तरह से है? नीचे एक्सएमएल फ़ाइल।

    <?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="horizontal"
android:baselineAligned="false"
android:keepScreenOn="true">

<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1.40"
android:orientation="vertical"
android:id="@+id/toolbarGestureOverlay" >
</LinearLayout>

<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_weight="3.60"
android:id="@+id/openglsurface">
</LinearLayout>
</LinearLayout>

उत्तर:

उत्तर № 1 के लिए 1

मुझे लगता है कि आप इसे इस्तेमाल करके संग्रहित कर सकते हैं rotate फ़ंक्शन (केवल API 11 से):

View view = findViewById(R.id.yourParentLayout);
view.setRotation(270);
// you must canculate your screen size to make your view fit your screen.
view.getLayoutParams().width = 800;
view.getLayoutParams().height = 480;
// For flip, you can rotate a long x or y axis:
view.setRotationY(180);