ল্যান্ডস্কেপে সফট কীবোর্ড ইনপুটটির জন্য পূর্ণস্ক্রিন সম্পাদনা দর্শনটি অক্ষম করছেন?


237

অ্যান্ড্রয়েড ডিভাইসগুলিতে যে সফট কীবোর্ডগুলি ব্যবহার করে, আমি ল্যান্ডস্কেপ মোডে আসার আগে পূর্ণস্ক্রিন কীবোর্ড সম্পাদনা ভিউ (নীচে দেখানো) আটকাতে চাই (যেমন আমি কেবল নরম কীবোর্ড নিজেই দেখতে চাই এবং এর পিছনে আমার দৃষ্টিভঙ্গি দেখতে চাই)।

আমি ধরে নিয়েছি setExtractViewShown(false)পদ্ধতিটি ব্যবহার করে এটি অর্জন করা সম্ভব InputMethodServiceতবে আমি এর ডিফল্ট উদাহরণটি অ্যাক্সেস করতে পারছি না এবং কাস্টম ইনপুট পদ্ধতিটি প্রয়োগ করতে চাই না।

অ্যান্ড্রয়েড ফুলস্ক্রিন সম্পাদনা দেখুন

যুক্ত করতে সম্পাদিত: যে ইনপুটটিতে চলছে তা দেখার দিকটি নয় TextView(এটি Viewএকটি কাস্টম InputConnectionবাস্তবায়ন সহ), সুতরাং android:imeOptions="flagNoExtractUi"এখানে কাজ করবে না।


এটি দেখতে চেষ্টা করুন। এটা আপনার জন্য ভাল. [এই এক লুক] [1] [1]: stackoverflow.com/questions/8648401/...
sonida

আমারও অনুরূপ সমস্যা আছে :( আপনার কি কোনও ধারণা থাকতে পারে? stackoverflow.com/questions/36914290/...
railwanderer

2
কীভাবে এটি পুরো অ্যাপ্লিকেশন জুড়ে প্রয়োগ করতে হয় e আমরা এক্সএমএলে প্রতিটি সম্পাদনা পাঠের ক্ষেত্রে অ্যাট্রিবিউট-মান যুক্ত করতে যাচ্ছি না।
বিকাশ পান্ডে

2
নীচের অনেকগুলি উত্তর flagNoExtractUiবা ব্যবহারের পরামর্শ দেয় IME_FLAG_NO_EXTRACT_UI। যাইহোক, IME_FLAG_NO_EXTRACT_UIযার সাথে সম্পর্কিত, এর ডকুমেন্টেশনে flagNoExtractUiএটি বলেছে যে "এই পতাকাটি ব্যবহার করা নিরুৎসাহিত করা হয়েছে এবং এটি ভবিষ্যতে অবনমিত হতে পারে", তাই flagNoFullscreenপ্রস্তাবিত বিকল্পটি রয়েছে।
থমাসডাব্লু

উত্তর:


178

অবশেষে আমি আমার নিজের প্রশ্নের উত্তর দিয়েছি:

এক্সট্রাক্ট ইউআই (অর্থাত্ পূর্ণস্ক্রিন সম্পাদনা মোড) যে স্থানে ইনপুট সংযোগটি হুক করা হয় তা অক্ষম করা যায়:

@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {

    outAttrs.imeOptions = EditorInfo.IME_FLAG_NO_EXTRACT_UI;

    // etc.
}

215
কেবলমাত্র আপনার এক্সএমএল ফাইল অ্যান্ড্রয়েডে কেবল লিখুন: imeOptions = "ফ্ল্যাগনো এক্সট্রাক্টইউই"

1
জিনিক, আপনি নরম কীবোর্ড কোডটিতে ওভাররাইড কোথায় করেছিলেন? SoftKeyboard.java? আমি একই ওভাররাইড চেষ্টা করেছিলাম এবং ত্রুটিযুক্ত হয়েছি।

14
আপনি যে জাতীয় বিকল্পগুলি এর আগে কীভাবে পাস করছিলেন তা ওভাররাইড না করে আপনি বিকল্পগুলিতে পতাকাটি যুক্ত করতে চান:outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_EXTRACT_UI;
ObsidianX

2
@ ব্যবহারকারী 726518 কীভাবে অ্যাকশন বারের সার্চবক্স আইটেমে এই বৈশিষ্ট্যটি প্রয়োগ করবেন?
মেননা-আল্লাহ সামি

1
কীবোর্ড হ্যান্ডেল করতে কাস্টম ভিউ ব্যবহার করার সময় কেবলমাত্র কাজ হয়েছিল। ধন্যবাদ!
হারমান

109

এটি করতে, ক্রিয়াকলাপের এক্সএমএল নেভিগেট করুন android:imeOptions="flagNoExtractUi"এবং আপনার কোডে পেস্ট করুন। তবে এটি কোথায় আটকানো উচিত? ক্রিয়াকলাপের এক্সএমএল কোডটি দেখুন এবং সম্পাদনা পাঠ্য সন্ধান করুন:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"         
    >

    <EditText
        android:imeOptions="flagNoExtractUi"
        android:id="@+id/etTextInAct"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" >   
        <requestFocus />
    </EditText>

</LinearLayout>

আপনি যদি কীবোর্ডের জন্য আরও স্বনির্ধারণের বিকল্পগুলি চান তবে দেখুন http://developer.android.com/guide/topics/ui/controls/text.html


64

আপনার ফাইলের android:imeOptions="flagNoExtractUi"প্রতিটিতে সম্পত্তি যুক্ত করুন।EditTextXML


1
এই উত্তরটি খুব ছোট এবং এসও মানের মানগুলি পূরণ করে না। কিছু অতিরিক্ত ব্যাখ্যা যুক্ত করে এটি উন্নত করুন, যাতে এটি সম্প্রদায়ের জন্য এবং কেবল ওপি-র জন্যই কার্যকর হবে না।
লরেঞ্জো দোনাটি - কোডিড্যাক্ট.অর্গ

31
@ লোরেঞ্জো দোনতি এটি আপনার যা করতে হবে তা হ'ল ... এটি একটি খুব সহজ উত্তর কারণ সমাধানটি খুব সহজ এবং এটি উপরের উত্তরগুলির চেয়ে এটি করার একটি ভিন্ন উপায়। এছাড়াও, আইএমও, প্রশ্নের উত্তর না দিলে উত্তরগুলি "খুব ছোট" হতে পারে না।
মাইকেল ইয়াওওয়ারস্কি

1
দুঃখিত, তবে এসও সম্প্রদায় এটি সম্পর্কে কী ভাবছে তা নয়। উত্তরগুলি ওপির সমস্যা সমাধানের মধ্যে সীমাবদ্ধ হওয়া উচিত নয়, তারা সাধারণভাবে দুর্দান্ত উত্তর হওয়া উচিত। উদাহরণস্বরূপ এটি এবং এটি দেখুন ।
লরেঞ্জো দোনাটি - কোডিড্যাক্ট.অর্গ

22
@ লরেঞ্জো দোনতি এটি একটি মাত্র নির্দিষ্ট ফলাফল (তবে এটি সমাধানের একাধিক উপায়) সহ একটি খুব নির্দিষ্ট প্রশ্ন। আমার উত্তরটি এই পৃষ্ঠার অন্যান্য উত্তরগুলির সংযোজন। এই পৃষ্ঠার সমস্ত উত্তর কেবলমাত্র "ওপির সমস্যা" এর মধ্যে সীমাবদ্ধ কারণ এটিই কেবলমাত্র একরকম উত্তর লেখা যেতে পারে। আমি যেমন বলেছি, এটি নির্দিষ্ট এবং সহজ।
মাইকেল ইয়াওওয়ারস্কি

2
অবশেষে, আমি উত্তর খুঁজে পেয়েছি। আপনাকে অনেক ধন্যবাদ @ মাইক ইয়াওওয়ারস্কি
ড্রেক্স

53

উপরের উত্তরটি আমাকে গতিশীল যুক্ত হওয়া এডিটেক্সটসের সমাধান বের করতে সহায়তা করেছে:

editText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);

37

android:imeOptions="flagNoFullscreen"এই বৈশিষ্ট্যটি অর্জন করতে ব্যবহার করুন ।


1
এক্সএমএল লিখতে সুন্দর এবং আরও ভাল পদ্ধতির। আমার জন্য কাজ কর. ধন্যবাদ
অহসানালী সুতার

1
নোট করুন যে ডকুমেন্টেশনের সাথে IME_FLAG_NO_EXTRACT_UI, যা এর সাথে মিলে যায় flagNoExtractUi, এতে বলা হয়েছে যে "এই পতাকাটি ব্যবহার করা নিরুৎসাহিত করা হয়েছে এবং এটি ভবিষ্যতে অবনমিত হতে পারে", তাই flagNoFullscreenপ্রস্তাবিত বিকল্পটি রয়েছে।
থমাসডাব্লু

12

এছাড়াও, আপনি যদি একাধিক imeOptions প্রগ্রেমেটিক্যালি একত্রিত করতে চান তবে আপনি | ব্যবহার করতে পারেন বাক্য গঠন.

উদাহরণস্বরূপ, ল্যান্ডস্কেপে পূর্ণস্ক্রিন সম্পাদনা দর্শনটি অক্ষম করতে এবং কীবোর্ডে "ঠিক আছে" (ACTION_DONE) দ্বারা "পরবর্তী" কীটি প্রতিস্থাপন করতে আপনি ব্যবহার করতে পারেন:

editText.setImeOptions(EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI);

9

আপনি যদি আইএমইকে সরাসরি সংশোধন করে থাকেন তবে আপনি এটিকে ওভাররাইড করে কখনও এক্সট্রাক্টভিউ প্রদর্শন করা থেকে বিরত রাখতে পারেন onUpdateExtractingVisibility:

@Override
public void onUpdateExtractingVisibility(EditorInfo ei) {
    ei.imeOptions |= EditorInfo.IME_FLAG_NO_EXTRACT_UI;
    super.onUpdateExtractingVisibility(ei);
}

6

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

<EditText
  android:layout_width="match_parent"
  android:layout_height="?actionBarSize"
  android:id="@+id/main_search_et"
  android:imeOptions="actionSearch|flagNoExtractUi"
  android:inputType="text"  />

চিয়ার্স!


5

আমার সমাধান:

android:imeOptions="flagNoExtractUi|flagNoFullscreen"

এটি একটি আরও আপ-টু-ডেট উত্তর।
alierdogan7

2

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

android:imeOptions="flagNoFullscreen" 

আপনার সম্পাদনায়


1
এটি কি একটি উত্তর?
artgb

আমি এটি চেষ্টা করি এবং এটি আমার পক্ষে কাজ করে! (আমার ডিভাইসটি অ্যান্ড্রয়েড ৪.১.২)
থিয়েন্টভেস

0

আপনি সফ্ট কীবোর্ডকে লুকিয়ে রাখতে এবং সন্ধানদর্শন থেকে ফোকাস পরিষ্কার করতে কল করতে পারেন।

public void hideKeyboard(View view) {
    InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}

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