android - লিনাক্স লেআউট এবং ওড্রয়েড ওজন




android-layout android-linearlayout (12)

3 টি জিনিস মনে রাখতে হবে:

  • অ্যান্ড্রয়েড সেট করুন : শিশুদের "layout_width" 0dp "
  • অ্যান্ড্রয়েড সেট করুন : ওজন হ'ল পিতা-মাতা ( সম্পাদনা: জেসন মুরের লক্ষ্য হিসাবে, এই বৈশিষ্ট্যটি ঐচ্ছিক, কারণ ডিফল্টভাবে এটি শিশুদের লেআউট_ওয়েট সেটের জন্য সেট করা হয়)
  • অ্যান্ড্রয়েড সেট করুন : প্রতিটি সন্তানের লেআউট_ওয়েট আনুপাতিকভাবে (যেমন ওজনসাম = "5", তিনটি শিশু: লেআউট_ওয়েট = "1", লেআউট_ওয়েট = "3", লেআউট_ওয়েট = "1")

উদাহরণ:

    <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:weightSum="5">

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="1" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:text="2" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="3" />

    </LinearLayout>

এবং ফলাফল:

আমি সবসময় অ্যান্ড্রয়েড ডকুমেন্টেশন এই মজার ওজন মান সম্পর্কে পড়তে। এখন আমি প্রথমবার চেষ্টা করতে চাই কিন্তু এটি সব কাজ করছে না।

আমি এই লেআউট নথিপত্র থেকে এটি বুঝতে হিসাবে:

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

     <Button
        android:text="Register"
        android:id="@+id/register"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dip"
        weight="1" />

     <Button
        android:text="Not this time"
        android:id="@+id/cancel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dip"
        weight="1" />

  </LinearLayout>

অনুভূমিকভাবে সমান্তরাল দুটি বাটন তৈরি এবং সমানভাবে স্থান ভাগ করা উচিত। সমস্যা দুটি বোতাম স্থান পূরণ করতে না বাড়ায় না।

আমি বাটন বড় হত্তয়া এবং পুরো লাইন পূরণ করতে চান। উভয় বোতাম যদি প্যারেন্টের সাথে মেলে সেট হয় শুধুমাত্র প্রথম বোতাম দেখানো হয় এবং সমগ্র লাইন পূরণ করে।


LinearLayout পৃথক শিশুদের একটি ওজন বরাদ্দ সমর্থন করে। এই বৈশিষ্ট্যটি একটি দৃশ্যের জন্য একটি " গুরুত্ব " মান নির্ধারণ করে এবং এটি পিতামাতার ভিউতে যে কোন অবশিষ্ট স্থান পূরণ করতে প্রসারিত করতে দেয়। ডিফল্ট ওজন শূন্য

সন্তানের মধ্যে অবশিষ্ট অবশিষ্ট / অতিরিক্ত স্থান বরাদ্দ গণনা। (মোট স্থান নয়)

স্থান নির্ধারণ শিশু = (শিশু পৃথক ওজন) / (লিনিয়ার লেআউট প্রতি সন্তানের ওজন সমষ্টি)

উদাহরণ (1): যদি তিনটি টেক্সট বক্স থাকে এবং দুইটি 1 ওজন ঘোষণা করে, তবে তৃতীয়টি কোনও ওজন (0) দেয় না তবে অবশিষ্ট / অতিরিক্ত স্থান নির্ধারণ করা হয়

1st text box = 1/(1+1+0) 
2nd text box = 1/(1+1+0) 
3rd text box = 0/(1+1+0) 

উদাহরণ (2) : ধরুন আমাদের কাছে একটি অনুভূমিক সারিতে পাঠ্য লেবেল এবং দুটি পাঠ্য সম্পাদনা উপাদান আছে। লেবেলটির কোনও লেআউট_ওয়ে নির্দিষ্ট নেই, তাই এটি রেন্ডার করতে প্রয়োজনীয় সর্বনিম্ন স্থান গ্রহণ করে। যদি দুটি পাঠ্য সম্পাদনা উপাদানগুলির প্রতিটিটির layout_weight 1 সেট করা হয়, তবে প্যারেন্ট লেআউটের অবশিষ্ট প্রস্থটি তাদের মধ্যে সমানভাবে বিভক্ত হবে (কারণ আমরা দাবি করি যে তারা সমানভাবে গুরুত্বপূর্ণ)।

calculation : 
1st label = 0/(0+1+1) 
2nd text box = 1/(0+1+1) 
3rd text box = 1/(0+1+1)

যদি প্রথম পাঠ্য বাক্সটিতে 1 টি লেআউট_ওয়েট থাকে এবং দ্বিতীয় পাঠ্য বাক্সটিতে 2 টি লেআউট_ওয়েট থাকে, তবে অবশিষ্ট স্থানটির এক তৃতীয়াংশ প্রথম এবং দ্বিতীয় থেকে দুই তৃতীয়াংশে দেওয়া হবে (কারণ আমরা দ্বিতীয়টি দাবি করি বেশি গুরুত্বপূর্ণ).

calculation : 
1st label = 0/(0+1+2) 
2nd text box = 1/(0+1+2) 
3rd text box = 2/(0+1+2) 

আপনি আমার জন্য এটি কাজ মত এই লিখতে হবে

<LinearLayout
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:orientation="horizontal"
            android:weightSum="2">

         <Button
            android:text="Register"
            android:id="@+id/register"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dip"
            android:layout_weight="1" />

         <Button
            android:text="Not this time"
            android:id="@+id/cancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dip"
            android:layout_weight="1" />

উপরের XML এ, android:layout_weight সেট করুন android:layout_weight রৈখিক লেআউটের android:layout_weight="2" 2 : android:layout_weight="2"


এই আপনার সমস্যা নিখুঁত উত্তর

  <LinearLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:orientation="horizontal"  >   
     <Button 
        android:text="Register" android:id="@+id/register"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:padding="10dip" weight="1" />
     <Button 
        android:text="Not this time" android:id="@+id/cancel"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:padding="10dip" weight="1" />
  </LinearLayout>

এই ছবিটি লিনিয়ার লেআউট সংক্ষিপ্ত করে।

আপনি এই বিষয়ে আরও তথ্যের জন্য এই লিঙ্ক অনুসরণ করতে পারেন। শুধু গণিত - দেখা, গ্রুপ এবং লেআউট দেখুন

লিনিয়ার লেআউট জন্য ভিডিও টিউটোরিয়াল: প্রস্থ, উচ্চতা ও ওজন

অ্যান্ড্রয়েড লিনিয়ার লেআউট টিউটোরিয়াল


নীচে আপনার কোডে পরিবর্তনগুলি ( BOLD এ চিহ্নিত) রয়েছে:

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

     <Button
        android:text="Register"
        android:id="@+id/register"
        android:layout_width="0dp" //changes made here
        android:layout_height="wrap_content"
        android:padding="10dip"
        android:layout_weight="1" /> //changes made here

     <Button
        android:text="Not this time"
        android:id="@+id/cancel"
        android:layout_width="0dp" //changes made here
        android:layout_height="wrap_content"
        android:padding="10dip"
        android:layout_weight="1" /> //changes made here

  </LinearLayout>

যেহেতু আপনার লিনিয়ারআউটটিতে অনুভূমিক হিসাবে অভিযোজন আছে, তাই আপনাকে আপনার প্রস্থটি শুধুমাত্র 0dp হিসাবে রাখতে হবে যে দিক ওজন ব্যবহার করার জন্য। (আপনার অভিযোজন উল্লম্ব ছিল, আপনি আপনার উচ্চতা শুধুমাত্র 0dp রাখা হবে)

যেহেতু 2 টি দৃশ্য রয়েছে এবং আপনি android:layout_weight="1" স্থাপন করেছেন android:layout_weight="1" উভয় মতামতের জন্য android:layout_weight="1" , এর মানে এটি দুটি android:layout_weight="1" অনুভূমিক দিক (বা প্রস্থ দ্বারা) সমানভাবে ভাগ করবে।


প্লাস আপনাকে এই android:layout_width="0dp" যুক্ত করতে হবে android:layout_width="0dp" বাচ্চাদের মতামত [বাটন দর্শন] জন্য android:layout_width="0dp"


সম্ভবত "fill_parent" বোতামে বিন্যাস_উইডথের উভয় বোতাম সেটিংটি কৌশলটি চালাবে।

আমি শুধু এই কোড পরীক্ষা করে এবং এটি এমুলেটর কাজ করে:

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

    <Button android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="hello world"/>

    <Button android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="goodbye world"/>

</LinearLayout>

উভয় বোতামে "fill_parent" এ layout_width সেট করতে ভুলবেন না।


fill_parent সঙ্গে fill_parent


 <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:background="#008">

            <RelativeLayout
                android:id="@+id/paneltamrin"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"

                >
                <Button
                    android:id="@+id/BtnT1"
                    android:layout_width="wrap_content"
                    android:layout_height="150dp"
                    android:drawableTop="@android:drawable/ic_menu_edit"
                    android:drawablePadding="6dp"
                    android:padding="15dp"
                    android:text="AndroidDhina"
                    android:textColor="#000"
                    android:textStyle="bold" />
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/paneltamrin2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                >
                <Button
                    android:layout_width="wrap_content"
                    android:layout_height="150dp"
                     android:drawableTop="@android:drawable/ic_menu_edit"
                    android:drawablePadding="6dp"
                    android:padding="15dp"
                    android:text="AndroidDhina"
                    android:textColor="#000"
                    android:textStyle="bold" />

            </RelativeLayout>
        </LinearLayout>


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

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:text="Button 1" />

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:text="Button 2" />

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:text="Button 3" />

    </LinearLayout>




android-layout-weight