টোস্টের LENGTH_LONG এবং LENGTH_SHORT এর সময়কাল


95

আমার LENGTH_LONG এবং LENGTH_SHORT এর সঠিক সময়কালটি মিলি সেকেন্ডে (এমএস) প্রয়োজন। এছাড়াও আমার এটাও জানতে হবে যে LENGTH_LONG এর সাথে টোস্ট বার্তার সময়কাল কোনও ফোনে এবং কোনও এপিআই সংস্করণ সহ একই সময়সীমার হয় কিনা।

কেউ কি জানেন যে সময়কালটি কোথায় সংজ্ঞায়িত করা হয়েছে?, মানে এমএসে সংজ্ঞায়িত। আমি জানি যে LENGTH_LONG মান 1 এর কিছুটা অন্তরঙ্গ বিষয়বস্তু But তবে প্রকৃত সময়কাল কোথায় সংজ্ঞায়িত হয়েছে তা আমি খুঁজে পেলাম না।


আপনি কি সেটডায়ারেশনে ()? ডক্স বলছে এটি ব্যবহারকারীর কনফিগারযোগ্য হবে তবে এই বিষয়ে নির্দিষ্ট নয়
কনস্ট্যান্টিন প্রব্লুদা

উত্তর:


184

এখানে উত্তর । আপনি উল্লেখ করেছেন Toast.LENGTH_SHORTএবং Toast.LENGTH_LONGএমএসে নয় তবে 0 বা 1 তে রয়েছে।

আসল সময়কাল হ'ল:

private static final int LONG_DELAY = 3500; // 3.5 seconds
private static final int SHORT_DELAY = 2000; // 2 seconds

14

Toast.LENGTH_SHORTএবং Toast.LENGTH_LONGশুধু পতাকা আছে।
আপনি এখানে সরকারী অ্যান্ড্রয়েড উত্সটি খুঁজে পেতে পারেন যেখানে এই পতাকাগুলি সংজ্ঞায়িত করা হয়েছে:

public class NotificationManagerService extends SystemService {

    static final int LONG_DELAY = PhoneWindowManager.TOAST_WINDOW_TIMEOUT;
    /** Amount of time (in milliseconds) a toast window can be shown. */
    //public static final int TOAST_WINDOW_TIMEOUT = 3500; // 3.5 seconds
    static final int SHORT_DELAY = 2000; // 2 seconds

    private void scheduleDurationReachedLocked(ToastRecord r)
    {
       mHandler.removeCallbacksAndMessages(r);
       Message m = Message.obtain(mHandler, MESSAGE_DURATION_REACHED, r);
       int delay = r.duration == Toast.LENGTH_LONG ? LONG_DELAY : SHORT_DELAY;
       //....
       mHandler.sendMessageDelayed(m, delay);
     }
}

4
এখন, এটিকে পরিবর্তন করা হয়েছে: static final int LONG_DELAY = PhoneWindowManager.TOAST_WINDOW_TIMEOUT; static final int SHORT_DELAY = 2000; // 2 seconds still the same
মায়াঙ্ক শর্মা

7

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

পরের লাইনে অন্য নকল টোস্ট রাখুন

প্রাক্তন:

Toast.makeText(this, "Hello StackOverFlow", Toast.LENGTH_LONG).show();
Toast.makeText(this, "Hello StackOverFlow", Toast.LENGTH_LONG).show();

ব্যবহারকারী 2 টি টোস্টের মধ্যে রূপান্তরগুলির কোনও পরিবর্তন সনাক্ত করতে পারবেন না।

ধন্যবাদ


4
যেহেতু পূর্ববর্তী জবাবগুলিতে এটি পরিষ্কারভাবে করা 'অসম্ভব' হিসাবে উল্লেখ করা হয়েছে আমি একটি বিকল্প পদ্ধতি সরবরাহ করছি এবং আমি এটি স্পষ্টভাবে উল্লেখ করেছি। আশা করি তুমি বুঝতে পেরেছো. আমি এখনই অনুসন্ধান করেছিলাম এবং একই ধরণের প্রশ্ন ছিল তা খুঁজে পেয়েছি এবং উত্তরগুলির মধ্যে দিয়েছি যেগুলির কয়েকটি বিকল্প। তবে আমি তাদের পক্ষে কোন ভোট খুঁজে পাই না। কেবল অসম্ভবকে বলা ঠিক কি তার চেয়ে বিকল্প খুঁজে পাওয়া আরও ভাল? আশা করি এটি বোধগম্য হবে। একটি অ্যান্ড্রয়েড টোস্ট কি "টোস্ট। এলএনজিথ_লং" এর চেয়ে দীর্ঘ হতে পারে?
পাসিন্ডুজে

3

setDurationক্রিয়াকলাপ সহ আপনার সময়কাল ওভাররাইড সেট করা দরকার , উদাহরণস্বরূপ:

int s = 6000; // milisegundo    
Snackbar.make(coordinatorLayout, "This is my Snackbar", Snackbar.LENGTH_LONG).setDuration(s)
.show();

2

আমি ভাবছি যে আপনি টস্ট.জভা ক্লাসে সমর্থিত পদ্ধতি সেটডোরেশন () কেন ব্যবহার করবেন না ???

 /**
 * Set how long to show the view for.
 * @see #LENGTH_SHORT
 * @see #LENGTH_LONG
 */
public void setDuration(@Duration int duration) {
    mDuration = duration;
}

আপনি কেবলমাত্র একটি অন্তর্গত মান নির্ধারণ করতে পারেন: LENGTH_SHORT, বা LENGTH_LONG।
গ্যাব্রিয়েল মেরিওটি

0

পরীক্ষার এবং ত্রুটির মাধ্যমে আমি 2500 মিমিToast.LENGTH_LONG খুব কাছাকাছি স্থায়ী পেয়েছি

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