অ্যান্ড্রয়েড টেক্সটভিউতে পাঠ্যটি ডানদিকে প্রান্তিক করুন


215

TextViewআমার আবেদনে একটি আছে আমি এতে লেখাটি ডানদিকে প্রান্তিক করতে চাই। আমি যোগ করার চেষ্টা করেছি:

android:gravity="right"

তবে এটি আমার পক্ষে কাজ করে না।

আমি কী ভুল করছি?

উত্তর:


193

আমি মনে করি আপনি এটি করছেন: android:layout_width = "wrap_content"
যদি এটি হয় তবে এটি করুন:android:layout_width = "match_parent"


2
@ বিশন ভরাট স্থানের অবশিষ্ট অংশ পূরণ করবে, ম্যাচটি পিতামাতার প্রস্থের সমান করে দেবে
ট্রয় কোসেন্টিনো

11
আসলে, ফিল_প্যারেন্ট এবং ম্যাচ প্যারেন্ট একই জিনিস। নামটি ম্যাচ_প্যারেন্টে পরিবর্তিত করা হয়েছে কারণ দৃশ্যত ফিল_পিতা জনগণকে বিভ্রান্ত করছে।
এডওয়ার্ড ফাল

158

সাধারণত, android:gravity="right"থেকে পৃথক android:layout_gravity="right"

প্রথমটি পাঠ্যটির নিজের অবস্থানটি ভিউয়ের মধ্যেই প্রভাবিত করে, তাই আপনি যদি এটি ডানদিকে যুক্ত করতে চান তবে layout_width=তা হয় হয় হয় "fill_parent"বা হয় "match_parent"

দ্বিতীয়টি তার অভিভাবকের ভিতরে ভিউয়ের অবস্থানকে প্রভাবিত করে, অন্য কথায় - বস্তুটি প্যারেন্ট ভিউয়ের ভিতরেই প্রান্তিককরণ (বাক্স বা পাঠ্য সম্পাদনা সম্পাদনা)।


83

সবচেয়ে ভাল সমাধান হ'ল যা সবচেয়ে সহজ এবং আপনার কোড আচরণে কম পরিবর্তন করে

আপনি যদি কেবল নিজের 2 টি সম্পত্তি দিয়ে এই সমস্যাটি সমাধান করতে পারেন তবে TextView?

আপনার LinearLayoutসম্পত্তিগুলি পরিবর্তনের প্রয়োজনের পরিবর্তে যা শিশুদের আচরণকে পরিবর্তন করতে পারে LinearLayout?

এই উপায়টি ব্যবহার করে, আপনাকে LinearLayoutবৈশিষ্ট্য এবং আচরণ পরিবর্তন করার দরকার নেই , আপনাকে কেবলমাত্র আপনার টার্গেটে নিম্নলিখিত দুটি বৈশিষ্ট্য যুক্ত করতে হবে TextView:

android:gravity="right"
android:textAlignment="gravity"

আপনার লক্ষ্য পিতাকে সংশোধন করে ভবিষ্যতে অন্য সমস্যার কারণ হওয়ার পরিবর্তে কেবলমাত্র সমাধানের সমাধানের জন্য আপনার টার্গেটটি পরিবর্তন করা কী ভাল? চিন্তা করুন :)


প্যাকেজ অ্যান্ড্রয়েডে রিসোর্স 'টেক্সটএলাইনমেন্ট' এর জন্য কোনও রিসোর্স আইডেন্টিফায়ার খুঁজে পাওয়া যায়নি বলে আমি ত্রুটি পেয়েছি।
আনু

আপনি নিশ্চিত যে আপনি কোনও TextViewসম্পত্তি অ্যাক্সেস করছেন ? - আপনি এখানে রেফারেন্স থেকে সম্পত্তিটি যাচাই করতে পারেন: developer.android.com/references/android/view/…
পাওলো রবার্তো রোজা

4
TextAlignment এপিআই স্তরের 17 (অ্যান্ড্রয়েড 4.2) এ যুক্ত হয়েছিল। এটি কাজ করার জন্য আপনার এমুলেটর / ডিভাইসটি 4.2+ চালানো দরকার।
থানহেটড

আমি অ্যান্ড্রয়েড ৪.১.২ এ এই টেক্সটএলাইনমেন্ট সম্পত্তিটি ব্যবহার করার চেষ্টা করেছি এবং "পাঠ্যসূচি" বৈশিষ্ট্যটির জন্য কোনও উত্স সনাক্তকারী খুঁজে পাওয়া যায় নি "ত্রুটিটি পেয়েছি। আমি এই ত্রুটির উত্তর এখানে stackoverflow.com/a/20176191/723507 পেয়েছি । আপনি কিভাবে এটি ব্যবহার করতে পারেন 4.0.3?
থানহেটড

20

android:layout_gravityপ্যারেন্ট লেআউটের প্রতি শ্রদ্ধার সাথে পাঠ্য দর্শন সারিবদ্ধ করতে ব্যবহৃত হয়। android:gravityপাঠ্য দৃশ্যের ভিতরে পাঠ্য সারিবদ্ধ করতে ব্যবহৃত হয়।

আপনি কি নিশ্চিত যে আপনি পাঠ্য দৃশ্যের ভিতরে পাঠ্যটি ডানদিকে প্রান্তিককরণের চেষ্টা করছেন বা পিতা-মাতার বিন্যাসের সাথে আপনি নিজেই টেক্সট ভিউটি ডানদিকে নিয়ে যেতে চান বা আপনি উভয়কেই আকর্ষণের চেষ্টা করছেন


আমি পাঠ্য দৃশ্যের ভিতরে পাঠ্যটি ডানদিকে প্রান্তিককরণের চেষ্টা করছি
বিজন

11

নিম্নলিখিত কোড স্নিপেট:

android:textAlignment="textEnd"
android:layout_gravity="end"

আমার জন্য দুর্দান্ত কাজ করে



8

নিশ্চিত হয়ে নিন যে আপনি যদি তা ব্যবহার করছেন না android:layout_width="wrap_content"তবে তা মাধ্যাকর্ষণ নির্ধারণ করতে সক্ষম হবে না কারণ আপনার পাঠ্যটি সাজানোর জন্য পর্যাপ্ত জায়গা নেই space পরিবর্তে ব্যবহারandroid:layout_width="fill_parent"


7
android:gravity="right"

এটি মূলত লিনিয়ার লেআউটে ব্যবহৃত হয় তাই আপনাকে পাঠ্যদর্শন বা প্রস্থ হিসাবে সম্পাদনা পাঠ্য প্রস্থটি সেট করতে হবে

android:layout_width = "match_parent"

এবং

আপনি যখন রিলেটিভ লেআউটে কাজ করছেন তখন ব্যবহার করুন

android:layout_alignParentRight="true"


5

এটিতে থাকলে RelativeLayoutআপনি ব্যবহার করতে পারেনandroid:layout_toRightOf="@id/<id_of_desired_item>"

অথবা

আপনি যদি rightডিভাইসের কোণে স্থানটি সারতে চান তবেandroid:layout_alignParentRight="true"


4

আমি ওয়েবে ব্যবহার করে মাধ্যাকর্ষণ ধারণাটি ব্যাখ্যা করি কারণ অনেক বিকাশকারী এটি সম্পর্কে সচেতন।

android_layout_gravity আচরণ করবে float:left|right|top|bottom

যেখানে android_gravityকাজ হিসাবেtext_align:centre|left|right

অ্যান্ড্রয়েড ফ্লোটে অ্যান্ড্রয়েড_লআউট_গ্রাভিটি এবং টেক্সট_লাইনাইন: অ্যান্ড্রয়েড_গ্রাভিটি।

এবং android_layout_gravity পিতামাতার তুলনায় প্রযোজ্য। যেখানে অ্যান্ড্রয়েড_গ্রাভিটি তার শিশু বা অভ্যন্তরীণ সামগ্রীতে প্রযোজ্য।

দ্রষ্টব্য অ্যান্ড্রয়েড_গ্রাভিটি কেবল তখনই কাজ করে যখন এর ভিউটি ম্যাচ_পিতা (যখন এটিতে কেন্দ্রে স্থান থাকে)।


3

নীচে আমার জন্য কাজ করে:

<TextView
    android:id="@+id/tv_username"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Sarah" />

<TextView
    android:id="@+id/tv_distance"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/tv_username"
    android:layout_alignParentEnd="true"
    android:layout_toEndOf="@+id/tv_username"
    android:text="San Marco"
    android:textAlignment="viewEnd" />

দ্বিতীয় টেক্সটভিউ এর সেটিংস android:layout_alignParentEndএবং android:textAlignmentসেটিংস নোট করুন ।


2

তুমি ব্যবহার করতে পার:

    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"


2

আমার ক্ষেত্রে, আমি Relative Layoutএকটি ব্যবহার করছিলামemptyString

এক ঘন্টা ধরে এ নিয়ে লড়াই করার পরে। এটি কেবল আমার জন্য কাজ করেছে:

android:layout_toRightOf="@id/welcome"
android:layout_toEndOf="@id/welcome"
android:layout_alignBaseline="@id/welcome"

layout_toRightOfবা layout_toEndOfউভয়ই কাজ করে তবে এটিকে আরও ভালভাবে সমর্থন করার জন্য, আমি উভয়ই ব্যবহার করি।

এটি আরও স্পষ্ট করতে:

এটি আমি যা করার চেষ্টা করছিলাম:

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

এবং এটি ছিল এমুলেটারের আউটপুট

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

লেআউট:

<TextView
    android:id="@+id/welcome"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="16dp"
    android:layout_marginTop="16dp"
    android:text="Welcome "
    android:textSize="16sp" />
<TextView
    android:id="@+id/username"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@id/welcome"
    android:layout_toRightOf="@id/welcome"
    android:text="@string/emptyString"
    android:textSize="16sp" />

লক্ষ্য করুন:

  1. android:layout_width="wrap_content" কাজ
  2. Gravity ব্যবহার করা হয় না

1

আমিও একই সমস্যার মুখোমুখি হয়েছি এবং টেক্সটভিউয়ের লেআউট_ প্রস্থের মোড়ক_কন্টেন্ট থাকায় সমস্যাটি হচ্ছিল। আপনার ম্যাচ_পিতা এবং অ্যান্ড্রয়েড হিসাবে লেআউট_পথ থাকতে হবে: মাধ্যাকর্ষণ = "মাধ্যাকর্ষণ"


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

  <TextView
    android:id="@+id/tct_postpone_hour"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:layout_gravity="center"
    android:gravity="center_vertical|center_horizontal"
    android:text="1"
    android:textSize="24dp" />
</RelativeLayout>

অনুভূমিক এবং উল্লম্ব উভয়কে কেন্দ্র করে এক নম্বর সারিবদ্ধ করে তোলে।



0

আমি আমার ক্ষেত্রে "লেআউট_লাইনআরাইট" বৈশিষ্ট্যটি ব্যবহার করেছি, এটি পাঠ্যে:

android:layout_alignRight="@+id/myComponentId"

আপনি যদি কিছু সঠিক মার্জিন যুক্ত করতে চান তবে কেবলমাত্র "লেআউট_মার্গিন রাইট" উদাহরণটি উদাহরণের জন্য "20dp" এ সেট করুন, পাঠ্যে এটির:

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