android কিভাবে আমার লেআউট ধাক্কা নরম কীবোর্ড এড়াতে?




বাংলা কী বোর্ড (6)

আমার ক্ষেত্রে, বোতামগুলি ধাক্কা দেওয়ার কারণে ScrollView উপরে একটি ScrollView ছিল কারণ এটি কীবোর্ডের উপরে ধাক্কা দেওয়া বোতামগুলির সাথে ভেঙ্গে ScrollView , কোনও মূল্যে android:windowSoftInputMode কোনও মূল্য নেই android:windowSoftInputMode আমি সেট করছি।

আমি সেটিংস দ্বারা নরম কীবোর্ড দ্বারা ধাক্কা পেয়ে বোতাম আমার নিচের সারি এড়ানোর জন্য সক্ষম ছিল

android:isScrollContainer="false" 

ScrollView যে বোতাম উপরে বসা।

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

কোনও পরামর্শ? ধন্যবাদ


Answer #1

দুষ্টু EditText সেটিং দ্বারা এটি সমাধান:

etSearch = (EditText) view.findViewById(R.id.etSearch);

etSearch.setInputType(InputType.TYPE_NULL);

etSearch.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        etSearch.setInputType(InputType.TYPE_CLASS_TEXT);
        return false;
    }
});

Answer #2

উইন্ডো SoftInputMode হয় প্যান বা আপনার কার্যকলাপ বিন্যাস আকার পরিবর্তন করা হবে। এক জিনিস যা আপনি করতে পারেন তা হল আপনার EditText এ একটি ফোকাস চেঞ্জেড শ্রোতা সংযুক্ত করা এবং ব্যবহারকারী যখন EditText নির্বাচন / ট্যাপ করে তখন আপনি আপনার নেভিগেশান বোতামগুলিকে পর্দার বাইরে লুকান বা সরান। যখন EditText ফোকাস হ্রাস করে তখন আপনি কার্যকলাপের নিচের দিকে নেভিগেশান বোতামগুলিকে ফিরিয়ে আনতে পারেন।


Answer #3

আমি একই সমস্যা ছিল এবং প্রথমে আমি যোগ:

<activity
    android:name="com.companyname.applicationname"
    android:windowSoftInputMode="adjustPan">

আমার ম্যানিফেস্ট ফাইল। কিন্তু এই একা সমস্যা সমাধান না। তারপর আর্টেম রাসাকভস্কি দ্বারা উল্লিখিত, আমি যোগ করেছেন:

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:isScrollContainer="false">
</ScrollView>

স্ক্রলভিউ।

এই আমার জন্য কাজ কি।


Answer #4

ভবিষ্যতে পাঠকদের জন্য।

আমি এই সমস্যা উপর নির্দিষ্ট নিয়ন্ত্রণ চেয়েছিলেন, তাই আমি কি কি এই:

একটি বিভাজক বা ক্রিয়াকলাপ থেকে, আপনার অন্যান্য মতামতগুলি লুকান (যা কীবোর্ডের সময় প্রয়োজন হয় না), তারপরে এই সমস্যাটি সমাধানের জন্য তাদের পুনঃস্থাপন করুন:

rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
     @Override
     public void onGlobalLayout() {
        Rect r = new Rect();
        rootView.getWindowVisibleDisplayFrame(r);
        int heightDiff = rootView.getRootView().getHeight() - (r.bottom - r.top);

        if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard...
           //ok now we know the keyboard is up...
           view_one.setVisibility(View.GONE);
           view_two.setVisibility(View.GONE);

        } else {
           //ok now we know the keyboard is down...
           view_one.setVisibility(View.VISIBLE);
           view_two.setVisibility(View.VISIBLE);       
        }
     }
});

Answer #5

আমারও একই সমস্যা ছিল, কিন্তু windowSoftInputMode সেটিংটি সাহায্য করে নি, এবং আমি স্ক্রল স্ক্রোল করতে চাইলে স্ক্রল স্ক্রিনে থাকা isScrollContainer="false" জন্য উপরের ভিউ পরিবর্তন করতে চাই না।

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







android-layout