অ্যান্ড্রয়েডটি কীভাবে সেট করুন: অ্যান্ড্রয়েডের জাভা দিক থেকে পাঠ্যদর্শনকে মাধ্যাকর্ষণ


219

আমি android:gravity="bottom|center_horizontal"আমার কাঙ্ক্ষিত ফলাফল পেতে একটি টেক্সটভিউতে এক্সএমএল ব্যবহার করতে পারি, তবে এই প্রোগ্রামটিভভাবে আমার করা দরকার। আমার পাঠ্যদর্শনটি যদি কোনও ক্ষেত্রে tablerowগুরুত্বপূর্ণ হয় তবে এটির ভিতরে relativelayout

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

LayoutParams layoutParams = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);
labelTV.setLayoutParams(layoutParams);

তবে আমি যদি সঠিকভাবে বুঝতে পারি তবে tablerowএটি টেক্সটভিউতে নয়, এটির ক্ষেত্রে প্রযোজ্য ?

উত্তর:


523
labelTV.setGravity(Gravity.CENTER | Gravity.BOTTOM);

কোটলিন সংস্করণ (থমিকে ধন্যবাদ)

labelTV.gravity = Gravity.CENTER_HORIZONTAL or Gravity.BOTTOM

এছাড়াও, আপনি মাধ্যাকর্ষণ বা লেআউট_গ্রাভিটি সম্পর্কে কথা বলছেন ? পরবর্তীকালে কোনও রিলেটিভলআউটটিতে কাজ করবে না ।


ধন্যবাদ যে কাজ করেছে। আমি এটি মিস করার জন্য এখন কিছুটা নির্বোধ বোধ করছি। মূলত সমস্যাটি একটি পাঠ্য ক্ষেত্রে মার্জিন সেট করা ছিল। আমি অনুমান করি যে আমি ধরে নিয়েছি কারণ আমি একটি সেটমার্গিন () পদ্ধতি খুঁজে পাইনি যা সেটগ্রাভিটি উপস্থিত ছিল না।
Nate

7
ধন্যবাদ +1, আমি ডকুমেন্টেশনটি পেয়েছি, তবে যথারীতি এটি অর্ধগুণে চলে যায়, যেখানে স্পষ্টভাবে বলা হয় না যে আমি (গ্র্যাভিটি.সেন্টার ইত্যাদি) থেকে মাধ্যাকর্ষণ স্থিরতা পাই।
হেইন ডু প্লেসিস

1
আমার মতো গুগল থেকে যে কেউ এখানে আসেন, তাদের জন্য কোটলিন it.gravity = Gravity.CENTER_HORIZONTAL or Gravity.BOTTOM
পথটি

আমার কাছে kotlin পথ বিভ্রান্তিকর হয়, এটি কেন orএবং and! ??!
চিড়িয়াখানা সংক্রান্তি

38

এটি পাঠ্য দর্শনে পাঠ্যটিকে কেন্দ্র করবে:

TextView ta = (TextView) findViewById(R.layout.text_view);
LayoutParams lp = new LayoutParams();
lp.gravity = Gravity.CENTER_HORIZONTAL;
ta.setLayoutParams(lp);

5
কাজ হয়নি। "lp.gravity বা সমাধান করা যাবে না একটি ক্ষেত্র নয়"
Nate

অদ্ভুত যে কারণ এই কোডটি কাজ করে এবং আমার জন্য ঠিক জরিমানা সংকলন করে। কোনও পাঠ্যদণ্ডের ওজন কোনও সেটওয়েট () পদ্ধতি নয় বলে আপনি কীভাবে সেট করবেন?
রেডিও

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

পাঠ্য ভিউটি রৈখিক বিন্যাসের ভিতরে থাকা অবস্থায় অ্যান্ড্রয়েড.উইজেট.লাইনারলআউট.লায়আউটপ্যারামগুলি আরও ভালভাবে আমদানি করা উচিত। অন্যথায় আপনি ClassCastException পান
tomm

ধন্যবাদ, এটি কাজ করে। তবে এটি সম্পূর্ণ সমাধান নয় কারণ এখানে এক ধরণের LayoutParamsসংজ্ঞা দেওয়া হয়নি এবং এটি পৃথক হতে পারে, তাই এটি সংকলন করবে না। আপনার একটি পিতামাতার লেআউটটি (উদাহরণস্বরূপ LinearLayout) জানা উচিত এবং এটি এখানে লিখুন।
কুলমাইন্ড

7

আমরা নীচের মতো যেকোন দৃশ্যে লেআউট মাধ্যাকর্ষণ সেট করতে পারি-

myView = findViewById(R.id.myView);
myView.setGravity(Gravity.CENTER_VERTICAL|Gravity.RIGHT);
 or
myView.setGravity(Gravity.BOTTOM);

এটি এক্সএমএল কোডের নীচে সজ্জিত

<...
 android:gravity="center_vertical|right"
 ...
 .../>

লেআউট মাধ্যাকর্ষণ মাধ্যাকর্ষণ হিসাবে একই নয়
Zvonimir পেরান

3

আপনার ব্যবহার করা উচিত textView.setGravity(Gravity.CENTER_HORIZONTAL);

মনে রাখবেন যে ব্যবহার করে

LinearLayout.LayoutParams layoutParams =new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
layoutParams2.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;

কাজ করবে না এটি উইজেটের জন্য মাধ্যাকর্ষণ সেট করবে এবং এটি পাঠ্যের জন্য নয়।



2
textView.setGravity(Gravity.CENTER | Gravity.BOTTOM);

এটি আপনার পাঠ্যদর্শনটির মাধ্যাকর্ষণ সেট করবে।


0

প্রথমে heightআমার TextViewজিনিসটি পেয়ে এবং পাঠ্যের মাধ্যমে এটিতে ডাইভিং দিয়ে ডাইভিং দিয়ে ডাইভিংয়ের মাধ্যমে sizeকয়েকটি সম্পূর্ণ লাইন পেতে সম্ভাব্য লাইনগুলি পাওয়ার জন্য কিছু সমাধান করে এটি সমাধান করুন TextView

int maxLines = (int) TextView.getHeight() / (int) TextView.getTextSize();

আপনি এই মানটি পাওয়ার পরে আপনাকে TextView maxLinesএই নতুন মানটিতে সেট করতে হবে।

TextView.setMaxLines(maxLines);

সেট Gravityথেকে Bottomএকবার লাইনের সর্বোচ্চ পরিমাণ অতিক্রান্ত হয়েছে এবং এটি স্বয়ংক্রিয়ভাবে নিচে স্ক্রল হবে।

if (TextView.getLineCount() >= maxLines) {
    TextView.setGravity(Gravity.BOTTOM);
}

এটি সঠিকভাবে কাজ করার জন্য আপনাকে অবশ্যই এটি ব্যবহার append()করতে হবে TextView, যদি আপনি setText()এটি কাজ করেন না।

TextView.append("Your Text");

এই পদ্ধতির সুবিধাটি হ'ল এটি heightআপনার TextViewএবং পাঠ্যের নির্বিশেষে গতিময়ভাবে ব্যবহৃত হতে পারে size। আপনি যদি নিজের বিন্যাসে পরিবর্তন করার সিদ্ধান্ত নেন তবে এই কোডটি এখনও কার্যকর হবে।

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