অ্যান্ড্রয়েড - কীভাবে রেটিং বার সেট করবেন তা এইচটিসি মোবাইলে ক্লিকযোগ্য এবং স্পর্শযোগ্য


95

আমার অ্যাপ্লিকেশনটিতে রেটিং বার রয়েছে। আমি রেটিং বারটি সেট করতে চাইছি নন-ক্লিক সক্ষম এবং কোনও স্পর্শযোগ্য নয়। এর জন্য আমি xmlপ্রতিটি রেটিং বারের ফাইলে নিম্নলিখিত কোড যুক্ত করেছি ।

এটি সামসং গ্যালাক্সি অ্যাপোলো জিটি-আই5801 এ কাজ করছে। তবে এটি এইচটিসি মোবাইলে কাজ করছে না। কেন?

এক্সএমএল কোড

android:clickable="false"     
android:focusableInTouchMode="false"    
android:focusable="false"

ধন্যবাদ


4
আপনি কি এই রেটিংয়ের মতো কোডিংয়ে চেষ্টা করে দেখেছেন? সেটকলিক (মিথ্যা);
অ্যান্ড্রো সেলভা

নং তবে কোনও ডিফ (এক্সএমএল এবং কোড অংশ) আছে কি?
নরেশ

নিশ্চিত না. তবে আমি এখনও এটি এক্সএমএলে চেষ্টা করে দেখিনি। দুঃখিত
Andro Selva

উত্তর:


334

আপনি নিম্নলিখিতটি দিয়ে এক্সএমএল থেকে সূচক হিসাবে রেটিংবারকে সেট করতে পারেন:

android:isIndicator="true"

4
আপনি যদি তালিকা ভিউতে এটি ব্যবহার করেন তবে এটিই সেরা সমাধান।
আলবার্টরোসা


এটি কাজ করে তবে আপনি রেটিংগুলি পরিবর্তন করতে পারবেন না। অর্থাত অ্যান্ড্রয়েড: রেটিং = "4" কাজ করবে না। এটি সর্বদা 5 থাকবে
विशाल

@ বিশাল এটি খুব ভাল ক্ষেত্রে হতে পারে; 8 বছরের মধ্যে অনেক কিছুই পরিবর্তন হয়। আমি আর অ্যান্ড্রয়েডে কাজ করছি না, তবে যা মনে পড়ে তা থেকে রেটিং সেট করা যায় এমন একটি উপায় ছিল। সম্ভবত XML এর পরিবর্তে কোড থেকে।
অ্যান্ডি

@ অ্যান্ডি - আমি সম্মত নই, আমি অন্যান্য বিকাশকারীদের রেফারেন্সের জন্য আমার মন্তব্যটি পোস্ট করেছি। যদি 4 কে রেটিং নির্দেশক সহ রেটিং বারটি নিষ্ক্রিয় করতে হয় তবে এটি অ্যান্ড্রয়েডের মতো কিছু হওয়া উচিত: রেটিং = "4" এবং সূচকটির জন্য সেটঅনটচলিস্টনারকে ওভাররাইড করা দরকার।
বিশাল

20

এটি আপনার সেটঅনরেটিংবারচ্যাঞ্জলিস্টেনারে এই কোডটি লিখুন

ratingaddrate.setIsIndicator(true);

হালনাগাদ :

আপনি আপনার এক্সএমএলে এই উদাহরণটি ব্যবহার করতে পারেন

android:isIndicator="true"

এছাড়াও যোগ এই লাইন কোড

ratingBar.setFocusable(false);

18

মিথ্যাতে সক্ষম থাকা সেট করবেন না কারণ এটি নিয়ন্ত্রণটি কমিয়ে দেবে। আপনি যা করতে চান তা অন টাচ শ্রোতাদের এভাবে ওভাররাইড করে:

import android.view.View.OnTouchListener;

RatingBar ratingBar = (RatingBar)findViewById(R.id.ratingBar);
ratingBar.setOnTouchListener(new OnTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            return true;
        }
    });

সুতরাং মূলত আপনি স্পর্শটিকে বাধা দেন এবং এটি দিয়ে কিছুই করেন না

ট্র্যাকবল রোলওভারগুলি ব্লক করতে নীচের কোডটিও যুক্ত করুন

ratingBar.setFocusable(false);

7
যদিও আমি এই উত্তরটি লিখেছি এবং এটি কার্যকর হয় তবে আমি নীচে অ্যান্ডির উত্তরটি আরও ভাল পছন্দ করি
রায়ান সি

4
অ্যান্ড্রয়েড: isIndicator = "সত্য" সঠিক সমাধান
ডিরকোনিল

ভুল উত্তর. সঠিক উপায়টি হ'ল: Android: isIndicator = "true" (XML) বা setIsIndicator (মিথ্যা) // CODE
Sileria

0

যোগ : শৈলী = "ATTR / ratingBarStyleIndicator অ্যান্ড্রয়েড?" আপনার লেআউট মধ্যে
উদাহরণস্বরূপ

<RatingBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/review_star"
        style="?android:attr/ratingBarStyleIndicator"
        android:scaleX=".5"
        android:rating="3.5"
        android:scaleY=".5"
        android:transformPivotX="0dp"
        android:transformPivotY="0dp"
        android:max="5"/>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.