লেআউটটির ভিতরে কীভাবে লেআউট অন্তর্ভুক্ত করবেন?


96

অ্যান্ড্রয়েডের মধ্যে বিন্যাসের অভ্যন্তরে কীভাবে অন্তর্ভুক্ত করবেন?

আমি সাধারণ বিন্যাস তৈরি করছি। আমি সেই লেআউটটিকে অন্য পৃষ্ঠায় অন্তর্ভুক্ত করতে চাই।


[এই পোস্টে] একটি সহজ ব্যবহার উদাহরণস্বরূপ নেই [1] [1]: stackoverflow.com/questions/2732682/...
আসফ Pinhassi

উত্তর:


198

সম্পাদনা: একটি মন্তব্যে যথাযথভাবে এখানে আরও কিছু তথ্যের জন্য অনুরোধ করা হয়েছে। includeট্যাগটি ব্যবহার করুন

<include
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   layout="@layout/yourlayout" />

আপনি যে লেআউটটি পুনরায় ব্যবহার করতে চান তা অন্তর্ভুক্ত করতে।

এই লিঙ্কটি পরীক্ষা করে দেখুন ...


11
কেবলমাত্র একটি ছোট্ট বিশদ: অ্যান্ড্রয়েড ব্যবহার করুন: লেআউট_উইথ = অ্যান্ড্রয়েডের পরিবর্তে "ম্যাচ_পিতা": বিন্যাস_পরিমাণ = "ফিল_প্যারেন্ট"। ভরা_ পিতামাতাকে অবহেলা করা হয়েছে।
ট্রিনিটি

4
আমি কি কোনও লেআউট অন্তর্ভুক্ত করতে এবং এর কয়েকটি বৈশিষ্ট্য এক্সএমএল এর মাধ্যমে সেট করতে পারি, উদাহরণস্বরূপ <অন্তর্ভুক্ত> ট্যাগে সাবলেআউটে একটি পাঠ্য স্ট্রিং সেট করতে পারি?
জনিটেক্স 3'19

@ জোহনিটেক্স নিশ্চিত না যে আপনি এটি সরাসরি <include />ট্যাগে করতে পারেন কিনা তবে আপনি জাভা কোড ব্যবহার করে এটি করতে পারেন। দেখতে নিচের Phileo99 এর উত্তর কিভাবে অন্তর্ভুক্ত লেআউটে একটি রেফারেন্স পেতে জানতে। এবং তারপরে আপনি এর বিষয়বস্তু পরিবর্তন করতে পারেন।
মূসা

58

নোট করুন যে আপনি যদি ট্যাগটিতে অন্তর্ভুক্ত android:id...করেন তবে <include />এটি অন্তর্ভুক্ত লেআউটের ভিতরে যে কোনও আইডি সংজ্ঞায়িত হয়েছিল তা ওভাররাইড করবে। উদাহরণ স্বরূপ:

<include
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:id="@+id/some_id_if_needed"
   layout="@layout/yourlayout" />

yourlayout.xML:

<LinearLayout
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:id="@+id/some_other_id">
   <Button
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:id="@+id/button1" />
 </LinearLayout>

তারপরে আপনি কোডের সাথে অন্তর্ভুক্ত লেআউটটি নীচে উল্লেখ করুন:

View includedLayout = findViewById(R.id.some_id_if_needed);
Button insideTheIncludedLayout = (Button)includedLayout.findViewById(R.id.button1);

20

<include />ট্যাগ ব্যবহার করুন ।

          <include 
            android:id="@+id/some_id_if_needed"
            layout="@layout/some_layout"/>

এছাড়াও, পুনরায় ব্যবহারযোগ্য UI উপাদান তৈরি এবং লেআউটগুলি নিবন্ধগুলি মার্জ করুন


উভয় লিঙ্কের আর অস্তিত্ব নেই।
জিমি

6

এটা চেষ্টা কর

<include
            android:id="@+id/OnlineOffline"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            layout="@layout/YourLayoutName" />

3

পুনঃ-ব্যবহার লেআউট সম্পর্কে অফিসিয়াল নথিগুলি থেকে

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

এখানে আমার শিরোনাম। এক্সএমএল ফাইল যা আমি অন্তর্ভুক্ত ট্যাগ ব্যবহার করে পুনরায় ব্যবহার করতে পারি

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


    <TextView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:gravity="center"
        android:text="@string/app_name"
        android:textColor="#000000" />

</RelativeLayout>

না আমি ব্যবহার করি অন্য এক্সএমএল ফাইল থেকে অন্য লেআউট যুক্ত করতে এক্সএমএলে ট্যাগ করুন।

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#f0f0f0" >


    <include
        android:id="@+id/header_VIEW"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        layout="@layout/header" />

        <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:background="#ffffff"
        android:orientation="vertical"
        android:padding="5dp" >


    </LinearLayout>

টেক্সটভিউটিকে কোনও আপেক্ষিক লেআউটে রাখুন এবং মূল দর্শন হিসাবে নয়?
ফ্লোরিয়ান ওয়ালথার

@ ফ্লোরিয়ানওয়ালের এটি একটি উদাহরণ
ইনটেলিজি আমিয়া ২২'১৮

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

@ ফ্লোরিয়ানওয়ালার Because I want to reuse a ProgressBarকী সমস্যা আসছে?
ইন্টেলিজিজ আমিয়া

কোনও সমস্যা নেই, এটি কাজ করে। তবে আমি যে সমস্ত উদাহরণ অনলাইনে দেখি সেগুলি একক উইজেটকে অন্য একটি লেআউটে রাখে এবং কেন আমি তা অবাক করি।
ফ্লোরিয়ান ওয়ালথার

0

এই লিঙ্কটি ব্যবহার করে আরও জানুন https://developer.android.com/training/improving-layouts/reused-layouts.html

    <androidx.constraintlayout.widget.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:context=".Game_logic">
    
          
            <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:layout_marginLeft="5dp"
                    android:id="@+id/text1"
                    android:textStyle="bold"
                    tools:text="Player " />
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textStyle="bold"
                    android:layout_marginLeft="20dp"
    
                    android:id="@+id/text2"
                    tools:text="Player 2" />
          
            
          
        </LinearLayout>
    </androidx.constraintlayout.widget.ConstraintLayout>

ব্লককোট

  • উপরের লেআউটটি ব্যবহার করে আপনি অন্যান্য ক্রিয়াকলাপে ব্যবহার করতে পারেন

     <?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.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:context=".SinglePlayer">   
    
              <include layout="@layout/activity_game_logic"/> 
          </androidx.constraintlayout.widget.ConstraintLayout>
    
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.