আপনি কি RelativeLayout এ একটি বোতাম কেন্দ্র করতে পারবেন?


174

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


1
ভাষা? ফ্রেমওয়ার্ক? অপারেটিং সিস্টেম?
আর্নল্ড স্পেন্স

3
@ আর্নল্ড স্পেন্স: আপনি আমাকে 24 সেকেন্ডের ব্যবধানে পরাজিত করেছেন :)
নিপ্পিসৌরাস

3
দুঃখিত, স্ট্যাক ওভারফ্লো ব্যবহার করে এটি আমার প্রথমবার। হ্যাঁ আমি অ্যান্ড্রয়েডের জন্য বিকাশ করছি। =)
আর্কিডিয়া

7
সমস্যা নেই. ডান ট্যাগগুলি দ্রুত ডান পোপলের দৃষ্টি আকর্ষণ করবে। স্থির :)
আর্নল্ড স্পেন্স

8
বিবেচ্য হওয়ার জন্য আর্নল্ড স্পেন্সকে +1 করুন। এসও-তে থাকা কিছু লোক কেবল "নতুন" হওয়ার জন্য মৌখিকভাবে ওপিটি ধ্বংস করে দিত।
সাববি

উত্তর:


370

চেষ্টা

android:layout_centerHorizontal="true"

ঠিক এর মতো, এটি আমার পক্ষে কাজ করে:

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

    <Button
        android:id="@+id/btn_mybutton"
        android:layout_height="wrap_content"
        android:layout_width="124dip"
        android:layout_marginTop="5dip"
        android:layout_centerHorizontal="true"/>

</RelativeLayout>

5
আপনার প্রস্থের জন্য আপনার যদি ম্যাচ_পিতা থাকে তবে আমি কাজ করি না।
ঘোটি 11

2
আপনার প্রস্থের জন্য যদি ম্যাচ_পিতা থাকে তবে এটি ইতিমধ্যে অনুভূমিকভাবে কেন্দ্রিক।
ataulm

103

আপেক্ষিক বিন্যাসের জন্য আপনি CENTER_IN_PARENT ব্যবহার করতে পারেন।

রিলেটিভলআউটটিতে android:layout_centerInParent="true"আপনি যে উপাদানটি কেন্দ্র করতে চান তাতে যুক্ত করুন


এটি অনুভূমিকভাবে এবং উল্লম্বভাবে কেন্দ্র করে, কীভাবে 'আউট লেআউট_সেন্টার হরিজন্টাল = সত্য
ব্যবহারকারীর 3076750

37

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

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relative_layout"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:gravity="center">

    <Button
        android:id="@+id/the_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Centered Button"/>
</RelativeLayout>

RelativeLayout এর মাধ্যাকর্ষণ সেট করা নিজেই এর ভিতরে স্থাপন করা সমস্ত বস্তুর উপর প্রভাব ফেলবে। এই ক্ষেত্রে, এটি কেবল বোতাম। আপনি এখানে মাধ্যাকর্ষণ সেটিংসের যে কোনওটি ব্যবহার করতে পারেন অবশ্যই (যেমন কেন্দ্র_হরিজন্টাল, শীর্ষ, ডান, এবং আরও কিছু)।

আপনি নীচে এই কোডটি ব্যবহার করতে পারেন:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relative_layout"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent">

    <Button
        android:id="@+id/the_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Centered Button"
        android:layout_centerInParent="true"/>
</RelativeLayout>

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

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

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

হ্যাঁ, এটা অবশ্যই হতে পারে। কোনও নির্দিষ্ট বিন্যাস করার প্রচুর উপায় রয়েছে। সেরা উপায় হ'ল আপনার মাথায় এটি কীভাবে চান তা স্কেচ সাজানোর এবং সেখান থেকে চলে যাওয়া। এই দ্রুত টিউটোরিয়াল কিছু খুব সাহায্য করতে পারে developer.android.com/resources/tutorials/views/...
কেভিন Coppock

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

25

সংক্ষিপ্ত

যোগ করার পদ্ধতি:

android:layout_centerInParent="true"

নীচের বৈশিষ্ট্যগুলির মধ্যে একটিরও যদি দেখার জন্য সেট করা থাকে: কেবলমাত্র রিলেটিভলআউটে কাজ করে:

android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"

যা সন্তানের দৃষ্টিভঙ্গিকে পিতামাতার দৃশ্যে প্রান্তিক করে তোলে। "কেন্দ্র" আপনি যে প্রান্তিককরণটি বেছে নিয়েছেন তার অক্ষের উপর ভিত্তি করে:

বাম / ডান -> উল্লম্ব

শীর্ষ / নীচে -> অনুভূমিক

দেখার ভিতরে বাচ্চাদের / সামগ্রীর মাধ্যাকর্ষণ সেট করা:

android:gravity="center"

কোনও প্রান্তিককরণ সেট না থাকলে, কোনও অবস্থাতেই পিতামাতার দৃশ্যের ভিতরে শিশুটিকে কেন্দ্র করে চলেছে। Chooseচ্ছিক আপনি চয়ন করতে পারেন:

<!-- Axis to Center -->
android:gravity="center_horizontal"
android:gravity="center_vertical"

<!-- Alignment to set-->
android:gravity="top"
android:gravity="bottom"
android:gravity="left"
android:gravity="right"
android:gravity="fill"
...

তারপরে রয়েছে:

android:layout_gravity="center"

যা দৃষ্টিভঙ্গিটিকে তার পিতামাতার মধ্যে রেখে দেয় ing

এবং শেষ পর্যন্ত আপনি নীচের বৈশিষ্ট্যটি পিতামাতার দর্শনে যুক্ত করতে পারেন:

android:layout_centerHorizontal="true"
android:layout_centerVertical="true"

7

android:centerInParent="true"যখন আপনি আপেক্ষিক বিন্যাসে দৃশ্যটি কেন্দ্র করতে চান তখন কোনও দৃশ্যের অভ্যন্তরে বৈশিষ্ট্যটি ব্যবহার করুন ।

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <TextView
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="NWE"
        android:textSize="30dp"/>
</RelativeLayout>

5

এটি সহজ, এটিকে কোনও কিছুর সাথে সারিবদ্ধ করবেন না

<Button
        android:id="@+id/the_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_centerInParent="true"
        android:text="Centered Button"/>


2

দিকনির্দেশের যে কোনও একটিতে সারিবদ্ধ করার জন্য অ্যান্ড্রয়েড ব্যবহার করুন: লেআউট_সেটারহোরাইজন্টল = "সত্য" বা অ্যান্ড্রয়েড: লেআউট_সেন্টিভার্টিকাল = "সত্য" সন্তানের বিন্যাসে


1

অ্যান্ড্রয়েডের মতো যেকোন প্রান্তিককরণ সরিয়ে ফেলা: লেআউট_আলাইনপ্যারেন্টস্টার্ট = "সত্য" এবং সেন্টার ইনপ্যারেন্ট যুক্ত করা আমার পক্ষে কাজ করেছে। যদি "সারিবদ্ধ" থাকে, কেন্দ্রপত্রে কাজ করে না


1

এটা সত্যিই সহজ। নীচের কোডটি চেষ্টা করুন,

<RelativeLayout
    android:id="@+id/second_RL"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/first_RL"
    android:background="@android:color/holo_blue_bright"
    android:gravity="center">

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

</RelativeLayout>

1
কোডের উত্তরগুলি এখানেই স্বাগত জানানো হয় না। উপরের উত্তরটি কেন কার্যকর হবে সে সম্পর্কে আরও বিশদ পোস্ট করার চেষ্টা করুন। :)
ভিভ্জ

গাইডলাইনটির জন্য ধন্যবাদ। আমি এখানে নতুন।
প্রথম

0

আপনার অবশ্যই এটি অবশ্যই পিতামাতার বাম বা ডানদিকে প্রান্তিক করা উচিত

android:centerInParent="true"কোডগুলি ব্যবহার করার সময় এর কোনওটি ব্যবহার করবেন না : -

android:layout_alignParentLeft="true"

android:layout_alignParentLeft="true"

android:layout_alignRight=""

প্রভৃতি

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