অ্যান্ড্রয়েড লেআউট ওজন


84

আমি অ্যান্ড্রয়েড বিকাশে নতুন এবং আমার রৈখিক বিন্যাসে ওজন নির্ধারণ সম্পর্কে একটি প্রশ্ন রয়েছে।

আমি দুটি কাস্টম বোতাম এবং একটি কাস্টম সম্পাদনা পাঠ্য সহ একটি সারি তৈরি করার চেষ্টা করছি। সম্পাদনা পাঠ্যটি কেবলমাত্র তার সামগ্রীর মতোই জায়গা গ্রহণ করতে হবে এবং সারিতে থাকা উপলভ্য অবশিষ্ট স্থানটি পূরণ করতে দুটি বোতাম অনুভূমিকভাবে প্রসারিত হওয়া উচিত। এটার মত...

| [#Button++#] [#Button--#] [et] |

বেশ কয়েকটি চেষ্টার পরেও এটি আমার কাছে সবচেয়ে কাছের, যদিও এটি অত্যধিক জটিল বলে মনে হচ্ছে to

| [Button] [Button] [###ET###] |

<LinearLayout 
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal|center_vertical"
    android:layout_weight="1"
    >

    <LinearLayout 
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center_horizontal|center_vertical"
        >
        <RelativeLayout 
            android:id="@+id/btn_plus_container" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"
            >
            <ImageButton 
                android:layout_height="wrap_content"
                android:layout_width="fill_parent" 
                android:id="@+id/btn_plus" 
                android:background="@drawable/btn"
                android:layout_centerInParent="true"
                ></ImageButton>
            <TextView 
                android:textColor="#FAFAF4"
                android:id="@+id/tv_dice_plus" 
                android:text="@string/tv_plus" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                ></TextView>
        </RelativeLayout>
    </LinearLayout>
    <LinearLayout 
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center_horizontal|center_vertical"
        >
        <RelativeLayout 
            android:id="@+id/btn_minus_container" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"
            >
            <ImageButton 
                android:layout_height="wrap_content"
                android:layout_width="fill_parent" 
                android:id="@+id/btn_minus" 
                android:background="@drawable/btn"
                android:layout_centerInParent="true"
                ></ImageButton>
            <TextView 
                android:textColor="#FAFAF4"
                android:id="@+id/btn_minus" 
                android:text="@string/tv_minus" 
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_centerInParent="true"
                ></TextView>
        </RelativeLayout>
    </LinearLayout>
    <LinearLayout 
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center_horizontal|center_vertical"
        >
        <EditText 
            android:textColor="#FAFAF4"
            android:text="@string/et_output" 
            android:id="@+id/et_output" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:inputType="number"
            android:selectAllOnFocus="true" 
            android:minWidth="50sp"         
            android:maxWidth="50sp"
            android:background="@drawable/tv_black_background3"
            android:textColorHighlight="#c30505"
            ></EditText>
    </LinearLayout>
</LinearLayout>

যেহেতু আমি বোতামগুলি ধারণ করে এমন লিনিয়ার বিন্যাসগুলির জন্য [অ্যান্ড্রয়েড: লেআউট_ওয়েট = "2"] সেটিংটি বুঝতে পেরেছি তারা সম্পাদনা পাঠ্যের চেয়ে আরও বেশি জায়গা নিতে পারে, তবে এটি আমার পক্ষে বিপরীত হয়, যার ফলে উভয় অর্ধেক আকার হয়ে যায়।

| [Btn] [Btn] [#####et#####] |

আমি এতগুলি বিভিন্ন সংমিশ্রণ চেষ্টা করেছি যা আমি তাদের মনে করতে পারি না এবং কোনওটিই কাজ করে না।

উত্তর:


213

এটি কাজ করে না কারণ আপনি প্রস্থ হিসাবে পূর্ণ_পিতা ব্যবহার করছেন। ওজন ਬਾਕੀ খালি জায়গাগুলি বিতরণ করতে বা স্থান দখল করতে ব্যবহৃত হয় যখন লাইনারিআউটআউট থেকে মোট যোগফল বড় হয়। পরিবর্তে আপনার প্রস্থকে 0 ডিপ এ সেট করুন এবং এটি কার্যকর হবে।


6
লিনিয়ার লেআউটে প্রস্থকে 0 ডিপ সেট করা আমার ইচ্ছা মতো কাজ করেছিল। আমি জানতাম না যে এটি একটি বিকল্প ছিল। এটি কেন কাজ করবে যেখানে মোড়ানো_ কনটেন্ট না কাজ করবে তা বোধগম্য হয়। কোনও বিষয়বস্তু না থাকলে প্রস্থকে মোড়ানো_ কনটেন্টে সেট করা এটিকে অদৃশ্য করে দেয়, তবে এটি 0 ডিপ সেট করা সেটাকে কোনও কিছু থেকে প্রসারিত করতে দেয় তবে এটি বড় হওয়া দরকার। আপনাকে অনেক ধন্যবাদ.
আনলাকি ডেভিল

লেআউট_উইথটিকে "ফিল_প্যারেন্ট" - এ সেট করুন এবং "0.2", "0.85" ইত্যাদির মতো একটি ভাসমান মানতে লেআউট_ ওয়েটও কাজ করে। এক্ষেত্রে ভিউটি যত বড় আকারের হবে তার বৃহত্তর সংখ্যা। আপনি যদি দয়া করে ব্যাখ্যা করতে পারেন যে এটি করার কোনও গ্রহণযোগ্য উপায় এটি?
ইয়ার

37
এটি আমার পক্ষেও কাজ করেছিল। ধন্যবাদ. (যদিও আমার বলতে হবে, অন্য কেউ অ্যান্ড্রয়েড লেআউট সিস্টেমটিকে কি অদ্ভুত এবং
উদ্দীপক

ধন্যবাদ! আমার লেআউটের প্রস্থগুলি প্রত্যাশা অনুযায়ী কেন প্রদর্শিত হয়নি তা বলতে সত্যিই আমার সমস্যা হয়েছিল। এটি 0 ডিপ সেটিংস যা এটি করেছিল :)
মার্য়ার

আপনি যদি সহজ কিছু করতে চান তবে @ স্টাইল অ্যান্ড্রয়েড সহজ। তবে আপনি যদি সহজ কাজগুলির চেয়ে আরও কিছু করতে চান তবে এটি অতিরিক্ত শক্ত হয়ে যায়।
পেসারিয়ার

14

android:Layout_weightআপনি ইতিমধ্যে পছন্দ মত আপনার প্রস্থ একটি স্থির মান সংযুক্ত না যখন ব্যবহার করা যেতে পারে fill_parent

এরকম কিছু করুন:

<Button>

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

-----other parameters
</Button>

7

এটি সেভাবে ভাবেন, সহজ হবে

আপনার কাছে যদি 3 টি বোতাম এবং সেগুলির ওজনগুলি সেই অনুযায়ী 1,3,1 হয়, এটি HTML এ টেবিলের মতো কাজ করবে

এই লাইনের জন্য 5 অংশ সরবরাহ করুন: বোতাম 1 এর 1 অংশ, বোতাম 2 এর 3 অংশ এবং বোতাম 1 এর জন্য 1 অংশ সরবরাহ করুন


3

রৈখিক লেআউটে ওয়েটসাম সেট করুন = 2;

এবং এর বাচ্চাদের ওজন যেমন আপনি প্রদর্শন করতে চান তেমন বিতরণ করুন .. আমি বাচ্চাকে ওজন = "1" দিয়েছি both সুতরাং উভয়ই মোট অর্ধেক বিতরণ করবে।

 <LinearLayout
    android:id="@+id/linear1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:weightSum="2"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/ring_oss"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/ring_oss" />

    <ImageView
        android:id="@+id/maila_oss"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/maila_oss" />
</LinearLayout>

2

ওজন মূল্য উপলব্ধ অনুপাত হিসাবে 0-1 উপলব্ধ স্থান (লেআউট_উইথ = "0px" সেট করার পরে) ভাগ বিতরণ। নির্দিষ্ট ওজনযুক্ত উপাদানগুলি দেখুন (কোনও ওজন এন্ট্রি নেই) ওজন 0 পান যার অর্থ তারা কোনও প্রসারণ পায় না।

ওজন এন্ট্রিবিহীন একটি সহজ বিকল্প হ'ল পাঠ্যের সাথে ভিউয়ের সাথে সংযুক্তি দেওয়া যা এটি পাঠ্য (র‌্যাপ_কন্টেন্ট) এর জন্য প্রয়োজনীয় ন্যূনতম থেকে স্পেসে উপলব্ধ স্থানটিতে প্রসারিত করতে বলে Edit


0

আমি মনে করি যে EditTextএর প্রস্থটি সেট করতে হবে wrap_contentএবং দুটি বোতামটি LinearLayoutযার প্রস্থ fill_parentএবং ওজন 1 তে সেট করা হবে।


0

আমি আরও একটি কারণ খুঁজে পেয়েছি (এটি অস্পষ্ট হিসাবে মনে হতে পারে)। নীচে কাজ করে নি।

লিনিয়ারলআউট উল্লম্ব

লিনিয়ারলআউট উচ্চতা পরিপূর্ণ + ওজন

লিনিয়ারলআউট উচ্চতা পরিপূর্ণ + ওজন

লিনিয়ারলআউট উচ্চতা পরিপূর্ণ + ওজন

এন্ডলাইনারলআউট

কাজ কি ছিল

রিলেটিভলআউট

লিনিয়ারলআউট উল্লম্ব

লিনিয়ারলআউট উচ্চতা পরিপূর্ণ + ওজন

লিনিয়ারলআউট উচ্চতা পরিপূর্ণ + ওজন

লিনিয়ারলআউট উচ্চতা পরিপূর্ণ + ওজন

এন্ডলাইনারলআউট

এন্ড রিলেটিভলয়েট

এটি লিনিয়ার সহ একটি মূল বিন্যাস দ্বারা অস্পষ্ট মনে হয় এবং এর নীচে ওজনগুলি কাজ করে না। এবং যখন আমি "কাজ করি না" বলি, আমি বলতে চাইছি যে আমি বিভিন্ন রেজোলিউশনের মধ্যে গ্রাফিকাল বিন্যাসটি দেখার পরে পর্দার ধারাবাহিকতা বড় সময় নষ্ট করে দেয়।


0
<LinearLayout
    android:id="@+id/linear1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:weightSum="9"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/ring_oss"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:src="@drawable/ring_oss" />

    <ImageView
        android:id="@+id/maila_oss"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:src="@drawable/maila_oss" />
<EditText
        android:id="@+id/edittxt"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:src="@drawable/maila_oss" />
</LinearLayout>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.