অনুভূমিক রৈখিক লেআউট অ্যান্ড্রয়েডে উইজেট কীভাবে ডান সারিবদ্ধ করবেন?


205

এই কোডটি আমি ব্যবহার করছি এবং এটি কার্যকর হচ্ছে না:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:orientation="horizontal">

    <TextView android:text="TextView" android:id="@+id/textView1"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:gravity="right">
    </TextView>

</LinearLayout>

উত্তর:


418

আপনি যে উপাদানটি ডান দেখতে চান তার আগে খালি Viewভিতরে অনুভূমিকভাবে যুক্ত করার চেষ্টা করুন LinearLayout:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <View
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_weight="1" />                

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

11
এইটা কাজ করে! তবে কেন কেউ ব্যাখ্যা করতে পারেন? আমি সম্পূর্ণ বুঝতে পারি না।
GMsoF

28
খালি ভিউ বোতামটির জন্য জায়গা রেখে সর্বোচ্চ পরিমাণের জায়গা নেওয়ার চেষ্টা করছে।
আলসান

14
এখনও অবধি এটি কেবলমাত্র আমার পক্ষে কাজ করেছে যা বামদিকে কয়েকটি বোতাম এবং ডানদিকে একটি চূড়ান্ত বোতাম রাখার চেষ্টা করে। তবে এটি আমার কাছে হ্যাকের মতো মনে হচ্ছে। এটি করার কোনও "সঠিক" উপায় আছে?
আইসডড্যান্ট

8
এটা সত্যিই দারুন! তবে কেন মাধ্যাকর্ষণ = "ডান" প্রথম থেকেই এইভাবে কাজ করে না? এটি অন্য দৃষ্টিভঙ্গির সাহায্যের দরকার কেন? এবং এটি কীভাবে "সঠিক", যদি তা অতিরিক্ত ভিউ ছাড়াই হয়?
আফ্রিশ

1
এটি গ্রিডের মতো লেআউটে কাজ করে না - কোনও খালি জায়গা নেই। শরিফ এলখতিব এর সমাধান কাজ করে।
সিডোনার

119

আপনি যদি সবকিছু ডান হতে না চান তবে লিনিয়ারলাইটের মাধ্যাকর্ষণটিকে "ডান" হিসাবে পরিবর্তন করবেন না।

চেষ্টা করুন:

  1. TextView এর পরিবর্তন প্রস্থ থেকেfill_parent
  2. TextView এর পরিবর্তন মাধ্যাকর্ষণ থেকেright

কোড:

    <TextView 
              android:text="TextView" 
              android:id="@+id/textView1"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"   
              android:gravity="right">
    </TextView>

1
এর জন্য ধন্যবাদ - এটি পূর্ণ_পরিবারের প্রশস্ততা যা আমাকে
ফেলেছিল

2
লিনিয়ার লেআউটটি কি এটি অর্জনের জন্য ডিজাইন করা হয়েছে? কেউ কি এটি অর্জনের জন্য কেবলমাত্র আপেক্ষিক লেআউট ব্যবহার করা উচিত নয়? এই সমাধানটি কি হ্যাক নয়?
ব্যবহারকারী2635088

লিনিয়ারলআউটে যদি আপনার একাধিক টেক্সটভিউ নিয়ন্ত্রণ থাকে তবে এটি কাজ করবে না। @ অ্যালকসান থেকে উত্তর দেখুন
ফেলিক্স

এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। এই পদ্ধতির কোনও অতিরিক্ত দৃষ্টিভঙ্গি ব্যবহার করা হয় না এবং আরও গুরুত্বপূর্ণ এটি লেআউট_ ওয়েট ব্যবহার করে না যা যথেষ্ট পারফরম্যান্স দেখায়।
৪৯-এ

android:layout_weight = "1"পাশাপাশি android:gravity="right"কৌতুক করা উচিত।
ভ্যাসিলিস

63

Alcsan এর উত্তর একটি সম্পূরক হিসাবে, আপনি ব্যবহার করতে পারেন Spaceএপিআই 14 (অ্যান্ড্রয়েড 4.0 ICE_CREAM_SANDWICH), যেহেতু নথি এখানে

স্পেস হ'ল লাইটওয়েট ভিউ সাবক্লাস যা সাধারণ উদ্দেশ্যে বিন্যাসে উপাদানগুলির মধ্যে ফাঁক তৈরি করতে ব্যবহৃত হতে পারে।

<?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" >

    <Space
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <TextView
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:text="TextView"
        android:gravity="right" />

</LinearLayout>

যে অ্যাপ্লিকেশনগুলি 14 বছরের কম বয়সী এপিআই স্তরগুলিকে সমর্থন করে তাদের জন্য android.support.v4.widget.Spaceঅ্যান্ড্রয়েড সমর্থন লাইব্রেরি r22.1.0 রয়েছে।


গুরুত্বপূর্ণটি হল আপনার লেআউট_ ওয়েট = "1"
কোড

পুরোপুরি কাজ করে! প্রতিটি উপাদানের প্রস্থ সংরক্ষণ করে।
ফাতেমন

এইটা কাজ করে. বাহ, অ্যান্ড্রয়েডের কদর্যতা আমাকে বিস্মিত করতে কখনও থামে না
ক্রিস নেভ

31

সঙ্গে লিনিয়ার লেআউট

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/select_car_book_tabbar"
        android:gravity="right" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:src="@drawable/my_booking_icon" />
    </LinearLayout>

এখানে চিত্র বর্ণনা লিখুন

সঙ্গে FrameLayout

<FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/select_car_book_tabbar">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical|right"
            android:src="@drawable/my_booking_icon" />
    </FrameLayout>

সঙ্গে RelativeLayout

<RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/select_car_book_tabbar">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerInParent="true"
            android:src="@drawable/my_booking_icon" />
    </RelativeLayout>

21

দর্শন নির্ধারণ করা layout_weight="1"কৌশলটি করতে হবে!

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<TextView
    android:id="@+id/textView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1" />

<RadioButton
    android:id="@+id/radioButton1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>


2
এ জাতীয় একটি সহজ সমাধান +1
অ্যালেক্স

1
যদি কেউ এখনও খুঁজছেন, তবে এটিই সঠিক সমাধান :)
Passatgt

এই ম্যাজিক! আপনি এটি কিভাবে খুঁজে পেলেন?
andreikashin

@ ওন্দ্রেইকাশিন, যদি সহায়তা করে তবে একটি আপ ভোট বিবেচনা করুন। ধন্যবাদ।
সাদ মাহমুদ

13

যোগ android:gravity="right"LinearLayout করতে। অনুমান করা TextViewহয়েছেlayout_width="wrap_content"


2
তিনি বিশেষত লিনিয়ারলআউটের ভিতরে একটি একক উপাদান সারিবদ্ধ করার জন্য বলেছিলেন। লিনিয়ার লেআউটটি নিজেই নয়: লেআউটটি নিজেই পূর্ণ_পিত্তিতে সেট করা আছে।
রিচি এইচএইচ


4

আমি এটি সহজতম পদ্ধতিতে সম্পন্ন করেছি:

কেবলমাত্র একটি আপেক্ষিক লেআউট নিন এবং এতে আপনার সন্তানের দৃষ্টিভঙ্গি রাখুন, যা আপনি ডানদিকে রাখতে চান ।

    <LinearLayout
        android:id="@+id/llMain"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#f5f4f4"
        android:gravity="center_vertical"
        android:orientation="horizontal"
        android:paddingBottom="20dp"
        android:paddingLeft="15dp"
        android:paddingRight="15dp"
        android:paddingTop="20dp">

        <ImageView
            android:id="@+id/ivOne"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_launcher" />


        <TextView
            android:id="@+id/txtOne"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:text="Hiren"
            android:textAppearance="@android:style/TextAppearance.Medium"
            android:textColor="@android:color/black" />

        <RelativeLayout
            android:id="@+id/rlRight"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="right">


            <ImageView
                android:id="@+id/ivRight"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="5dp"
                android:src="@drawable/ic_launcher" />

        </RelativeLayout>
    </LinearLayout>

আশা করি এটা তোমাকে সাহায্য করবে।


3

আপনার একটি রিলেটিভলআউট ব্যবহার করা উচিত এবং এটি যতক্ষণ না ভাল লাগে ততক্ষণ এগুলিকে টেনে আনুন :)

    <ImageView
        android:id="@+id/button_info"
        android:layout_width="30dp"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="10dp"
        android:contentDescription="@string/pizza"
        android:src="@drawable/header_info_button" />

</RelativeLayout>

2
"তাদের টেনে আনুন" মাল্টি রেজোলিউশনের স্ক্রিনের জন্য প্রস্তাবিত নয়
মূসা অ্যাপ্রিকো

3

linear layoutসঙ্গে layout_width="fill_parent"এবং একই সঙ্গে উইজেট layout width+ + gravity as rightডানদিকে এটা সারিবদ্ধ হবে।

আমি TextViewনীচের উদাহরণে 2 টি ব্যবহার করছি , topicTitleবাম এবং topicQuestionsডানদিকে।

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="20dp"
        android:orientation="horizontal">

    <TextView
        android:id="@+id/topicTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/topicQuestions"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="right"
        android:textSize="18sp"
        android:textStyle="bold" />
    </LinearLayout>

</RelativeLayout>

আউটপুট


2

লেআউট_উইথটি এতে পরিবর্তন করার চেষ্টা করুন android:layout_width="match_parent"কারণ লেআউট_পথের gravity:"right"ভিতরে পাঠ্যটিকে প্রান্তিক করে তোলে এবং আপনি মোড়ানো বিষয়বস্তু চয়ন করেন তবে এটি কোথায় যেতে হবে তা নয়, তবে আপনি যদি পিতামাতার সাথে মিল রেখে এটি ডানদিকে যেতে পারেন।


2

কোনও অতিরিক্ত ভিউ বা উপাদান ব্যবহার করার দরকার নেই:

// এটি এত সহজ এবং সহজ

<LinearLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal"
>

// এটি বাম প্রান্তিককরণ আছে

<TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="No. of Travellers"
      android:textColor="#000000"
      android:layout_weight="1"
      android:textStyle="bold"
      android:textAlignment="textStart"
      android:gravity="start" />

// এটি সঠিক প্রান্তিককরণ

<TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Done"
      android:textStyle="bold"
      android:textColor="@color/colorPrimary"
      android:layout_weight="1"
      android:textAlignment="textEnd"
      android:gravity="end" />

</LinearLayout>

0

টেক্সটভিউয়ের ক্ষেত্রে:

<TextView 
    android:text="TextView" 
    android:id="@+id/textView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"   
    android:gravity="right"
    android:textAlignment="gravity">    
</TextView>

0

ভিউ যুক্ত করা কিছুটা কঠিন এবং এটি এর মতো সমস্ত পর্দার প্রস্থকে কভার করে:

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<View
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_weight="1" />                

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

এই কোডটি চেষ্টা করুন:

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Create Account"/>

</LinearLayout>

-1

এখানে একটি নমুনা। ব্যবস্থা করার কী নীচে রয়েছে

android:layout_width="0dp"
android:layout_weight="1"

সম্পূর্ণ কোড

<?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="wrap_content"
    android:orientation="horizontal"
    android:padding="5dp">

    <TextView
        android:id="@+id/categoryName"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="abcd" />

    <TextView
        android:id="@+id/spareName"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="efgh" />

</LinearLayout>

এখানে চিত্র বর্ণনা লিখুন


-1

এইভাবে টেক্সটভিউ পাঠ্যকে ডানদিকে সেট করতে ম্যাচ_পিতা এবং অভিকর্ষ ব্যবহার করুন:

<?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">

    <TextView android:text="TextView" android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="right">
    </TextView>

</LinearLayout>

-2

এটা চেষ্টা কর..

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:orientation="horizontal" 
    android:gravity="right" >



    <TextView android:text="TextView" android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </TextView>

</LinearLayout>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.