ঘোষিতভাবে অর্ধ উপলব্ধ স্ক্রিন প্রস্থের প্রস্থকে বরাদ্দ করুন


113

উপলভ্য স্ক্রিনের প্রস্থের অর্ধেকের জন্য কোনও উইজেটের প্রস্থ নির্ধারণ করা কি ঘোষণাযুক্ত এক্সএমএল ব্যবহার করে সম্ভব?

উত্তর:


274

যদি আপনার উইজেটটি একটি বোতাম হয়:

<LinearLayout android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:weightSum="2"
    android:orientation="horizontal">
    <Button android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="somebutton"/>

    <TextView android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>
</LinearLayout>

আমি ধরে নিচ্ছি আপনি চান আপনার উইজেটটি অর্ধেক নেবে এবং অন্য উইজেটটি অন্য অর্ধেকটি গ্রহণ করবে। কৌশলটি একটি লিনিয়ারলআউট ব্যবহার করে, layout_width="fill_parent"উভয় উইজেটের উপর সেট করে এবং উভয় উইজেটে layout_weightএকই মান সেট করে। যদি দুটি উইজেট থাকে, উভয়ই একই ওজন সহ, লিনিয়ারলআউট দুটি উইজেটের মধ্যে প্রস্থকে বিভক্ত করবে।


15
অ্যান্ড্রয়েডের আরও ভাল ব্যবহার করুন: লেআউট_উইথ = "0 ডিপি" উভয় সন্তানের উপাদানগুলির জন্য, তাদের দু'বার আকার দিতে এড়ানো।
টোমাশ

2
আপনাকে কখনই লেআউট_উইথ = "0 ডিপি" ঘোষণা করতে হয়েছিল তা আমি কখনই পাইনি
অ্যান্ড্রু

আপনি ফিলার্স হিসাবে Android এর পরবর্তী সংস্করণগুলিতে <স্পেস /> ব্যবহার করতে পারেন can আমার মনে হয় ভিউ টেক্সটভিউয়ের চেয়ে কিছুটা হালকা যদি আপনি কেবল ফিলার হিসাবে এটি ব্যবহার করার ইচ্ছা করেন। লেআউট_উইথ = "0 ডিপি" হ'ল অ্যান্ড্রয়েড ডকুমেন্টেশন অনুসারে প্রস্তাবিত পদ্ধতি।
মুজ

দুর্দান্ত কাজ! তোমাকে অনেক ধন্যবাদ!!
IcyFlame

1
@ অ্যান্ড্রু: যেহেতু এই উপায়ে লেআউটটি সরবরাহকারী উপাদানটির বিন্যাস_ প্রস্থের সাথে কাজ করার চেষ্টা করে না, এটি ওজন অনুযায়ী অতিরিক্ত প্রস্থ ভাগ করে নেওয়া সরাসরি এড়িয়ে যায়।
njzk2

43

সীমাবদ্ধতা বিন্যাস ব্যবহার করে

  1. একটি গাইডলাইন যুক্ত করুন
  2. শতাংশটি 50% এ সেট করুন
  3. গাইডলাইন এবং পিতামাতার কাছে আপনার দৃষ্টি নিবদ্ধ করুন।

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

যদি এটি শতাংশে পরিবর্তন করতে সমস্যা হয়, তবে এই উত্তরটি দেখুন

এক্সএমএল

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:layout_editor_absoluteX="0dp"
    tools:layout_editor_absoluteY="81dp">

    <android.support.constraint.Guideline
        android:id="@+id/guideline8"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.5"/>

    <TextView
        android:id="@+id/textView6"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="TextView"
        app:layout_constraintBottom_toTopOf="@+id/guideline8"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"/>
    
</android.support.constraint.ConstraintLayout>

এটি সেরা উত্তর হওয়া উচিত।
জিন এরিক

15

এটির আকারের ওজন অনুযায়ী হুবহু ঠিক আছে কিনা তা নিশ্চিত করার জন্য প্রস্থকে 0 ডিপি হিসাবে দিন এটি নিশ্চিত করবে যে এমনকি শিশু দর্শনের বিষয়বস্তু বড় হয়ে গেলেও তারা এখনও ঠিক অর্ধেকে সীমাবদ্ধ থাকবে (ওজন অনুসারে)

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

    <Button
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="click me"
    android:layout_weight="0.5"/>


    <TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:text="Hello World"
    android:layout_weight="0.5"/>
  </LinearLayout>

1
আমি মনে করি যে অ্যান্ড্রয়েড: লেআউট_উইথ = "0 ডিপি" সঠিক তবে প্রতিটি ওজন 0.5 এবং ওয়েটসটাম সেট করে এটির দরকার নেই sum দেখে মনে হচ্ছে আপনার উভয় সন্তানের মতামতের জন্য একই ওজন থাকা দরকার ..
jj_

5

কেন্দ্রে একক আইটেমের জন্য অন্য উপায়, যা পর্দার অর্ধেক পূর্ণ করে:

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

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

        <EditText
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2" />

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

</LinearLayout>

1
<LinearLayout 
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
    android:id="@+id/textD_Author"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:text="Author : "
    android:textColor="#0404B4"
    android:textSize="20sp" />
 <TextView
    android:id="@+id/textD_Tag"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:text="Edition : "
    android:textColor="#0404B4"
    android:textSize="20sp" />
<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:weightSum="1" >
    <Button
        android:id="@+id/btbEdit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:text="Edit" />
    <Button
        android:id="@+id/btnDelete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:text="Delete" />
</LinearLayout>
</LinearLayout>

3
যদিও এই কোড স্নিপেট একটি ব্যাখ্যা সহ প্রশ্নটি সমাধান করতে পারে, সত্যিই আপনার পোস্টের মান উন্নত করতে সহায়তা করে। মনে রাখবেন যে আপনি ভবিষ্যতে পাঠকদের জন্য প্রশ্নের উত্তর দিচ্ছেন, এবং সেই লোকেরা আপনার কোড পরামর্শের কারণগুলি জানেন না।
gunr2171
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.