android - জনশ - অ্যান্ড্রয়েড এ মাধ্যাকর্ষণ এবং layout_gravity মধ্যে পার্থক্য




মাধ্যাকর্ষণ বল কাকে বলে (14)

পার্থক্য

android:layout_gravity বাইরের মাধ্যাকর্ষণ। দৃশ্যটি তার পিতামাতার সীমানাটি স্পর্শ করবে এমন দিকটি নির্দিষ্ট করে।

android:gravity যে ভিউ এর ভিতরে মাধ্যাকর্ষণ। তার বিষয়বস্তু সারিবদ্ধ করা উচিত কোন দিক নির্দেশ করে।

এইচটিএমএল / সিএসএস সমান

Android                 | CSS
————————————————————————+————————————
android:layout_gravity  | float
android:gravity         | text-align

সহজ কৌশল আপনি মনে রাখতে সাহায্য

layout-gravity "লে-আউট-মাধ্যাকর্ষণ" হিসাবে গ্রহণ করুন।

আমি জানি যে আমরা android:gravity এর নিম্নোক্ত মানগুলি সেট করতে পারি android:gravity এবং android:layout_gravity বৈশিষ্ট্য:

  1. center
  2. center_vertical
  3. center_horizontal , ইত্যাদি

কিন্তু আমি উভয় সম্পর্কে বিভ্রান্ত করছি।

android:gravity ব্যবহারের মধ্যে পার্থক্য কি android:gravity এবং android:layout_gravity ?


আমি ভাবলাম আমি এখানে নিজের ব্যাখ্যা যুক্ত করব - iOS এর পটভূমি থেকে আসছে, এইভাবে আমি iOS এর শর্তাবলীর মধ্যে উভয়টি অভ্যন্তরীণ করেছি: "লেআউট মাধ্যাকর্ষণ" তত্ত্বাবধানে আপনার অবস্থানকে প্রভাবিত করে। "মাধ্যাকর্ষণ" আপনার মধ্যে আপনার subviews অবস্থান প্রভাবিত করে। আরেকটি উপায়ে বলেছেন, লেআউট মাধ্যাকর্ষণ আপনার অবস্থানকে যখন মাধ্যাকর্ষণ আপনার বাচ্চাদের অবস্থান করে।


তাদের নাম আপনাকে সাহায্য করতে হবে:

  • android:gravity সামগ্রীর গুরুতরতা (অর্থাত এটির সাবউইউউ) সেট করে।
  • android:layout_gravity তার পিতামাতার আপেক্ষিক View বা Layout মাধ্যাকর্ষণ সেট করে।

এবং একটি উদাহরণ here


দুটি মধ্যে মৌলিক পার্থক্য যে-

অ্যান্ড্রয়েড: মাধ্যাকর্ষণ দৃশ্য শিশুর উপাদান জন্য ব্যবহার করা হয়।

অ্যান্ড্রয়েড: লেআউট_গ্র্যাভিটি পিতামাতার দৃশ্যের সাথে এই উপাদানটির জন্য ব্যবহৃত হয়।


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


যদি আমরা একটি দৃশ্যের ভিতরে সামগ্রীর মাধ্যাকর্ষণ সেট করতে চাই তবে আমরা "অ্যান্ড্রয়েড: মাধ্যাকর্ষণ" ব্যবহার করব, এবং যদি আমরা এই দৃশ্যটির সামগ্রিকতা (সম্পূর্ণরূপে) তার পিতামাতার দৃশ্যের মধ্যে সেট করতে চাই তবে তারপরে আমরা "android: layout_gravity "।


সংক্ষিপ্ত উত্তর: android:gravity ব্যবহার করুন android:gravity একটি কন্টেইনারের সমস্ত সন্তানের মতামতের নিয়ন্ত্রণের জন্য android:gravity বা setGravity() ; একটি android:layout_gravity ব্যবহার করুন android:layout_gravity বা setLayoutParams() একটি কন্টেইনারে একটি পৃথক দৃশ্যের মাধ্যাকর্ষণ নিয়ন্ত্রণ করতে।

লম্বা গল্প: লিনিয়ার RadioGroup বা RadioGroup মতো লিনিয়ার লেআউট কন্টেইনারে মাধ্যাকর্ষণ নিয়ন্ত্রণ করার জন্য দুটি পদ্ধতি রয়েছে:

1) android:layout_gravity কন্টেইনারের সমস্ত সন্তানের মতামতগুলি নিয়ন্ত্রণ করার জন্য (যেমন আপনি আপনার বইয়ে করেছিলেন), android:gravity ব্যবহার করুন android:gravity ( android:layout_gravity ) লেআউট এক্সএমএল ফাইল বা setGravity() পদ্ধতিতে কোড।

2) তার পাত্রে একটি শিশু দৃশ্যের মাধ্যাকর্ষণ নিয়ন্ত্রণ করতে, android:layout_gravity ব্যবহার করুন android:layout_gravity XML বৈশিষ্ট্য। কোডে, LinearLayout.LayoutParams পেতে হবে। LinearLayout.LayoutParams দেখুন এবং তার মাধ্যাকর্ষণ সেট করুন। এখানে একটি কোড উদাহরণ যা একটি অনুভূমিকভাবে ভিত্তিক ধারক নীচে একটি বোতাম সেট করে:

import android.widget.LinearLayout.LayoutParams;
import android.view.Gravity;
...

Button button = (Button) findViewById(R.id.MyButtonId);
// need to cast to LinearLayout.LayoutParams to access the gravity field
LayoutParams params = (LayoutParams)button.getLayoutParams(); 
params.gravity = Gravity.BOTTOM;
button.setLayoutParams(params);

অনুভূমিক LinearLayout কন্টেইনারের জন্য, তার সন্তানের দৃশ্যের অনুভূমিক মাধ্যাকর্ষণটি অন্যের পরে একত্রিত হয় এবং পরিবর্তন করা যায় না। android:layout_gravity সেট করা android:layout_gravity থেকে center_horizontal এর কোন প্রভাব নেই। ডিফল্ট উল্লম্ব মাধ্যাকর্ষণ কেন্দ্র (বা center_vertical) এবং উপরে বা নীচে পরিবর্তন করা যেতে পারে। প্রকৃতপক্ষে ডিফল্ট layout_gravity মান -1 তবে Android layout_gravity উল্লম্বভাবে কেন্দ্র করে।

একটি অনুভূমিক রৈখিক ধারক মধ্যে সন্তানের মতামতগুলির অনুভূমিক অবস্থানগুলি পরিবর্তন করতে, শিশু দৃশ্যের layout_weight , মার্জিন এবং প্যাডিং ব্যবহার করতে পারেন।

একইভাবে, উল্লম্ব ভিউ গ্রুপ কন্টেইনারের জন্য, তার সন্তানের ভিউটির উল্লম্ব মাধ্যাকর্ষণ একে অন্যের নিচে শীর্ষে সংলগ্ন করে এবং পরিবর্তন করা যাবে না। ডিফল্ট অনুভূমিক মাধ্যাকর্ষণ কেন্দ্র (বা center_horizontal ) এবং বাম বা ডান পরিবর্তন করা যেতে পারে।

প্রকৃতপক্ষে, বাটন মত একটি শিশু setGravity() android:gravity এক্সএমএল বৈশিষ্ট্য এবং setGravity() পদ্ধতিটি তার সন্তানের মতামতগুলি নিয়ন্ত্রণ করতে - এটির পাঠ্য। Button.setGravity(int) এই developer.android.com এন্ট্রির সাথে যুক্ত।


সন্দীপের ব্লগে যা কিছু দেখেছি তা আমি প্রায় মিস করেছি, আমার সমস্যা ঠিক করে দিয়েছে। তিনি বলেন layout_gravity সাথে কাজ করে না।

আপনি যদি LinearLayout ব্যবহার করেন এবং মাধ্যাকর্ষণ সেটিংস আপনাকে বাদাম চালাচ্ছে (আমার মতো) তবে অন্য কিছুতে স্যুইচ করুন।

আমি আসলে একটি RelativeLayout layout_alignParentLeft স্যুইচ করেছি তারপর layout_alignParentLeft এবং layout_alignParentRight 2 টি layout_alignParentRight উপর ব্যবহার করা হয়েছে যা এক বামে অনেক বাম এবং ডানদিকে যেতে পারে।


android:gravity -> এটি ব্যবহার করা সামগ্রীর মাধ্যাকর্ষণ সেট করে।

android:layout_gravity -> এর পিতামাতার দৃশ্য বা লেআউটের মাধ্যাকর্ষণ সেট করে


gravity এবং layout-gravity মধ্যে অনেক পার্থক্য আছে। আমি এই দুটি ধারণা সম্পর্কে আমার অভিজ্ঞতা ব্যাখ্যা করতে যাচ্ছি ( আমার পর্যবেক্ষণ এবং কিছু ওয়েবসাইটের কারণে আমি পেয়েছি সমস্ত তথ্য )।

FrameLayout মাধ্যাকর্ষণ এবং লেআউট-মাধ্যাকর্ষণ ব্যবহার করুন .....

বিঃদ্রঃ:-

  1. গ্র্যাভিটি ভিউ কনটেন্টের ভিতরে ব্যবহৃত হয় যেমন কিছু ব্যবহারকারীর উত্তর থাকে এবং এটি সমস্ত ViewGroup Layout জন্য একই।

  2. কিছু ব্যবহারকারীর উত্তর হিসাবে Layout-gravity পিতামাতার ভিউ ব্যবহার করা হয়।

  3. Gravity and Layout-gravity FrameLayout সাথে আরও বেশি কার্যকরীWe can't use Gravity and Layout-gravity ফ্রেমএলআউট এর ট্যাগে We can't use Gravity and Layout-gravity ....

  4. layout-gravity ব্যবহার করে আমরা FrameLayout এ যেকোনো স্থানে শিশু দৃশ্য সেট করতে পারি।

  5. আমরা center_vertical ভিতরে মাধ্যাকর্ষণের প্রতি একক মান ব্যবহার করতে পারি (উদাঃ - center_vertical , center_horizontal , center , top , ইত্যাদি), তবে অন্যান্য ভিউগ্রুপ লেআউটগুলির সাথে এটি সম্ভব নয়।

  6. FrameLayout Layout-gravity উপর সম্পূর্ণরূপে কাজ। উদাহরণ: - যদি আপনি FrameLayout কাজ করেন তবে নতুন ভিউ যুক্ত করার জন্য আপনাকে পুরো লেআউটটি পরিবর্তন করতে হবে না । আপনি কেবল FrameLayout হিসাবে শেষ হিসাবে দৃশ্য যুক্ত করুন এবং তাকে Layout-gravity মান দিয়ে দিন। ( এই ফ্রেমলয়াউটের সাথে লেআউট-মাধ্যাকর্ষণের উপকারিতা )।

উদাহরণ দেখুন ...

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:textSize="25dp"
        android:background="#000"
        android:textColor="#264bd1"
        android:gravity="center"
        android:layout_gravity="center"
        android:text="Center Layout Gravity"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="80dp"
        android:textSize="25dp"
        android:background="#000"
        android:textColor="#1b64b9"
        android:gravity="bottom"
        android:layout_gravity="bottom|center"
        android:text="Bottom Layout Gravity" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="80dp"
        android:textSize="25dp"
        android:background="#000"
        android:textColor="#d75d1c"
        android:gravity="top"
        android:layout_gravity="top|center"
        android:text="Top Layout Gravity"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="80dp"
        android:textSize="25dp"
        android:background="#000"
        android:layout_marginTop="100dp"
        android:textColor="#d71f1c"
        android:gravity="top|right"
        android:layout_gravity="top|right"
        android:text="Top Right Layout Gravity"/>


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="80dp"
        android:textSize="25dp"
        android:background="#000"
        android:layout_marginBottom="100dp"
        android:textColor="#d71cb2"
        android:layout_gravity="bottom"
        android:gravity="bottom"
        android:text="Top Left Layout Gravity"/>

</FrameLayout>

আউটপুট: -

লিনিয়ার এলয়েটের মাধ্যাকর্ষণ এবং লেআউট-মাধ্যাকর্ষণ ব্যবহার করুন .....

Gravity উপরের হিসাবে কাজ করে কিন্তু এখানে ভিন্ন যে আমরা লিনিয়ার LinearLayout View এবং RelativeLayout View LinearLayout View ভিতরে মাধ্যাকর্ষণ ব্যবহার করতে পারি যা FrameLayout View সম্ভব নয়।

Orientation উল্লম্ব সঙ্গে LinearLayout ....

দ্রষ্টব্য: - এখানে আমরা layout_gravity কেবলমাত্র 3 টি মান সেট করতে layout_gravity যা ( left | right | center ( center নামেও পরিচিত))।

উদাহরণ দেখুন: -

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="100dp"
        android:textSize="25dp"
        android:background="#000"
        android:textColor="#264bd1"
        android:gravity="center"
        android:layout_gravity="center_horizontal"
        android:text="Center Layout Gravity \nor \nCenter_Horizontal"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="80dp"
        android:textSize="25dp"
        android:background="#000"
        android:layout_marginTop="20dp"
        android:textColor="#d75d1c"
        android:layout_gravity="right"
        android:text="Right Layout Gravity"/>


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="80dp"
        android:textSize="25dp"
        android:background="#000"
        android:layout_marginBottom="100dp"
        android:textColor="#d71cb2"
        android:layout_gravity="left"
        android:layout_marginTop="20dp"
        android:gravity="bottom"
        android:text="Left Layout Gravity"/>

</LinearLayout>

আউটপুট: -

অনুভূমিক অনুভূমিক সঙ্গে LinearLayout ....

দ্রষ্টব্য: - এখানে আমরা layout_gravity 3 টি মানও সেট করতে layout_gravity যা হল ( top | bottom | center ( center_vertical নামেও পরিচিত))।

উদাহরণ দেখুন: -

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="horizontal"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="120dp"
        android:layout_height="100dp"
        android:textSize="25dp"
        android:background="#000"
        android:textColor="#264bd1"
        android:gravity="center"
        android:layout_gravity="bottom"
        android:text="Bottom \nLayout \nGravity"/>

    <TextView
        android:layout_width="120dp"
        android:layout_height="100dp"
        android:textSize="25dp"
        android:background="#000"
        android:layout_marginTop="20dp"
        android:textColor="#d75d1c"
        android:layout_gravity="center"
        android:text="Center \nLayout \nGravity"/>


    <TextView
        android:layout_width="150dp"
        android:layout_height="100dp"
        android:textSize="25dp"
        android:background="#000"
        android:layout_marginBottom="100dp"
        android:textColor="#d71cb2"
        android:layout_gravity="left"
        android:layout_marginTop="20dp"
        android:text="Left \nLayout \nGravity"/>

</LinearLayout>

আউটপুট: -

দ্রষ্টব্য: - আমরা RelativeLayout Views layout_gravity ব্যবহার করতে পারি না তবে আমরা RelativeLayout Views layout_gravity একই অবস্থানে সেট করার জন্য gravity ব্যবহার করতে পারি ....


মাধ্যাকর্ষণ: আপনি বিষয়বস্তু একটি পাত্রে ভিতরে সরানো অনুমতি দেয়। (কিভাবে সাব-ভিউ স্থাপন করা হবে)।

গুরুত্বপূর্ণ: (এক্স-অক্ষ বা Y-axis সহ উপলব্ধ স্থানের মধ্যে চলুন)।

উদাহরণ: লিনিয়ার এলয়েট (উচ্চতা: ম্যাচ_পেন্ট, প্রস্থ: match_parent) রুট লেভেল উপাদান হিসাবে কাজ করার জন্য যদি বলুন, তাহলে আপনার সম্পূর্ণ ফ্রেম স্পেস থাকবে; এবং সন্তানের দৃষ্টিভঙ্গিগুলি লিনাক্স লায়োটের ভিতরে 2 পাঠ্য দৃশ্যগুলি (উচ্চতা: মোড়ানো_ উপাদান, প্রস্থ: wrap_content) পিতামাতার উপর গুরুতরতার জন্য সংশ্লিষ্ট মানগুলি ব্যবহার করে x / y অক্ষ বরাবর সরানো যেতে পারে।

লেআউট_গ্র্যাভিটি: আপনাকে এক্স-অক্ষ বরাবর পিতা-মাতা মাধ্যাকর্ষণ আচরণকে ওভাররাইড করতে অনুমতি দেয়।

গুরুত্বপূর্ণ: (উপলব্ধ স্থানের মধ্যে এক্স-অক্ষ বরাবর মুভি [ওভাররাইড])।

উদাহরণ: যদি আপনি পূর্ববর্তী উদাহরণটি মনে রাখবেন, আমরা জানি যে মহাকর্ষটি আমাদেরকে x / y অক্ষ বরাবর সরাতে সক্ষম করেছে, অর্থাত্; LinearLayout ভিতরে টেক্সট TextViews। চলুন শুধু লিনিয়ার এলয়েউট মাধ্যাকর্ষণকে নির্দেশ করে: কেন্দ্র; অর্থ প্রতিটি টেক্সটভিউ উল্লম্বভাবে এবং অনুভূমিক উভয় কেন্দ্র হতে হবে। এখন যদি আমরা পাঠ্য ভিউতে বাম / ডান দিকে যেতে চাই তবে আমরা পাঠ্য ভিউতে লেআউট_গ্র্যাভিটি ব্যবহার করে নির্দিষ্ট মাধ্যাকর্ষণ আচরণকে ওভাররাইড করতে পারি।

বোনাস: যদি আপনি গভীর খনন করেন তবে আপনি পাঠ্য ভিউয়ের মধ্যে পাঠ্যটিকে সাব-ভিউ হিসাবে খুঁজে পাবেন; তাই আপনি যদি TextView এ মাধ্যাকর্ষণ প্রয়োগ করেন, তবে টেক্সট ভিউয়ের ভিতরে পাঠ্যটি সরাতে হবে। (সম্পূর্ণ ধারণা এখানেও প্রযোজ্য)


মাধ্যাকর্ষণ : পাঠ্য দর্শন, সম্পাদনা ইত্যাদি মত সহজ মতামতের জন্য ব্যবহৃত হয়।

layout_gravity : বর্তমান দৃশ্যের জন্য কেবল তার মাতৃভাষার অন্য কোন মাধ্যাকর্ষণে দেখার জন্য রৈখিক লেআউট বা ফ্রেমএলআউটের মতো আপেক্ষিক প্যারেন্ট ভিউ প্রসঙ্গে মাধ্যাকর্ষণটি ব্যবহার করা হয়।


মাধ্যাকর্ষণ সম্পর্কে পরিষ্কার হতে ইমেজ তাকান


android:gravity

তার নির্দিষ্ট অবস্থান (বরাদ্দ এলাকা) সম্পর্কিত আপেক্ষিক বিষয়বস্তুর জন্য সামঞ্জস্য করতে ব্যবহৃত হয়। android:gravity="left" কিছু না করলে layout_width "wrap_content" layout_width "wrap_content" সমান হবে।

android:layout_gravity 

পিতামাতার বা লেআউট ফাইল নিজেই আপেক্ষিক দেখতে জন্য ব্যবহার করা হয়।





android-gravity