অ্যান্ড্রয়েড: উপলভ্য স্থান পূরণ করতে কীভাবে একটি দৃশ্য বাড়ানো যায়?


90

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

<LinearLayout 
        android:orientation="horizontal"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content">
        <EditText 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        </EditText>
        <ImageButton 
            android:src="@drawable/img1"
            android:layout_width="50dip" 
            android:layout_height="50dip">
        </ImageButton>
        <ImageButton 
            android:src="@drawable/img2"
            android:layout_width="50dip" 
            android:layout_height="50dip">
        </ImageButton>
</LinearLayout>

উত্তর:


51

আপেক্ষিক বিন্যাসে এটি চেষ্টা করুন

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content">
    <ImageButton 
        android:id="@+id/btn1"
        android:src="@drawable/icon"
        android:layout_width="50dip" 
        android:layout_height="50dip"
        android:layout_alignParentRight="true"/>
    <ImageButton 
        android:id="@+id/btn2"
        android:src="@drawable/icon"
        android:layout_width="50dip" 
        android:layout_height="50dip"
        android:layout_toLeftOf="@+id/btn1"/>
    <EditText 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/btn2">
    </EditText>

</RelativeLayout>

4
ধন্যবাদ. এটি দুর্দান্ত কাজ করে। (জোসেফের উল্লেখ অনুসারে, এডিট টেক্সটের আগে ইমেজব্যাটনগুলি অবশ্যই সংজ্ঞায়িত করা উচিত)।
ab11

4
ভরা_পিতা - এই ধ্রুবকটি এপিআই লেভেল 8 থেকে শুরু করে হ্রাস করা হয় এবং এটি {@ কোড ম্যাচ_পিতা} দ্বারা প্রতিস্থাপিত হয়}
জোন

147

যদি আপনি লেআউটটি একই রাখতে চান (যেমন, পাঠ্যের পরে বোতাম), তবে layout_weightসম্পত্তিটি পাশাপাশি ব্যবহার করুন fill_parent:

<LinearLayout 
    android:orientation="horizontal"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content">
    <EditText 
        android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
    </EditText>
    <ImageButton 
        android:src="@drawable/img1"
        android:layout_width="50dip" 
        android:layout_height="50dip">
    </ImageButton>
    <ImageButton 
        android:src="@drawable/img2"
        android:layout_width="50dip" 
        android:layout_height="50dip">
    </ImageButton>
 </LinearLayout>

প্রদান EditText'ওজন' গত মূর্ত আউট এবং বোতাম থেকে প্রাধান্য দেয় পেতে তোলে। বিভিন্ন লেআউট_উইটগুলি খেলুন এবং দেখুন আপনি কত মজা করতে পারেন!


4
ধন্যবাদ. আমি আমার লেআউট আছে 3 এলাকাসমূহ (শিরোলেখ, content- ওয়েবদৃশ্য এবং ফুটার) এটি সেটিং দ্বারা সমস্যার সমাধান করে WebView layout_weight = 1 এবং ফুটার এর layout_weight = 0.
MKK

মাত্র একটি সন্তানের ওজন এবং 0 ডিপি সেট করার কৌশলটি জানেন না .. ধন্যবাদ!
মার্সেল

4
এটিকে কি সাধারণত সেরা অনুশীলন হিসাবে বিবেচনা করা হয়? এটি আকর্ষণীয় যে আপনি অ্যান্ড্রয়েড দর্শনগুলি সমাধান করে এমন ক্রমকে প্রভাবিত করতে পারেন।
সাইপ্রাস ফ্রাঙ্কেনফিল্ড

4
প্রস্থটি 0 রাখা উচিত বলে আমি মনে করি
বিবাসওয়ান বন্দ্যোপাধ্যায়

19

ঠিক আছে:

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

        <ImageButton 
            android:id="@+id/button1"
            android:src="@drawable/img1"
            android:layout_width="50dip"
            android:layout_alignParentTop="true" 
            android:layout_height="50dip">
        </ImageButton>
        <ImageButton 
            android:src="@drawable/img2"
            android:layout_width="50dip" 
            android:layout_alignParentTop="true"
            android:layout_toRightOf="@id/button1"
            android:layout_height="50dip">
        </ImageButton>
        <EditText 
            android:layout_below="@id/button"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent">
        </EditText>
</RelativeLayout>

বিন্যাসের মূল বিষয়গুলি হ'ল:

  • স্থির আকারের আইটেমগুলি প্রথমে বিন্যাসে স্থাপন করা হয়, এইভাবে যখন অ্যানড্রয়েড fill_parentপরে ফাইলের সাথে জিনিসগুলির উচ্চতার উচ্চতা গণনা করতে আসে তখন এটি কেবলমাত্র অবশিষ্ট স্থানটিকে বিবেচনা করে, সমস্ত স্থান সম্ভবত এটি দখল করতে পারে না তবে আর কিছুই ছিল না
  • এডিট টেক্সটের উচ্চতা fill_parent( match_parent২.২++) রয়েছে যাতে এটি উপলব্ধ স্থানের বাকী অংশ নেয়

দুঃখিত আপনার প্রশ্ন যথেষ্ট পড়েনি। উপরের কোডটি উত্তরটি সরবরাহ করে যদি আপনি এটি উল্লম্ব ফ্যাশনে করতে চান। অনুভূমিক বিন্যাসের জন্য @ সুনিল পোস্ট করা কোডটি কাজ করা উচিত।


ধন্যবাদ জোসেফ এটি কাজ করে। যদিও, আমি কিছুটা দ্রুত হওয়ার জন্য কৃতিত্ব সুনীলকে দিয়েছি।
ab11

13

ব্যবহারের সেট layout_widthবা layout_heightকরার 0dp(অভিযোজন করার মাধ্যমে আপনি অবশিষ্ট স্থান প্রয়োগ করতে চান)। তারপরে এটি ব্যবহার করে layout_weightঅবশিষ্ট স্থানটি পূরণ করুন।

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