নরম কীবোর্ড পপ আপ করা হলে পৃষ্ঠা স্ক্রোল


100

আমার একটি <ScrollView>বিন্যাস আছে:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/my_scrollview"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <EditText
            android:id="@+id/input_one"
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:inputType="number" >

         <EditText
            android:id="@+id/input_two"
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:inputType="number" >

         <EditText
            android:id="@+id/input_three"
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:inputType="number" >

          <Button
            android:id="@+id/ok_btn"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="20dp"
            android:text="@string/ok_str" />

      </LinearLayout>
</ScrollView>

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

আমি উপরের লেআউটটি দিয়ে আমার অ্যাপটি চালনা করছি, যখন আমি 1 ম ইনপুট ক্ষেত্রটি ( @+id/input_one) এ ট্যাপ করি তখন নরম কীবোর্ডটি স্ক্রিনের নীচে থেকে পপ আপ হয়ে যায়, এটি তৃতীয় ইনপুট ক্ষেত্র এবং "ওকে" বোতামটি আড়াল করে।

যেহেতু আমি ব্যবহার করি <ScrollView>, আমি ভেবেছিলাম যে আমি তৃতীয় ইনপুট ক্ষেত্র এবং সফ্ট কীবোর্ড দ্বারা লুকানো "ঠিক আছে" বোতামটি দেখতে পৃষ্ঠাটি উপরে স্ক্রোল করতে পারি , তবে পৃষ্ঠাটি স্ক্রোলযোগ্য নয় । কেন? কীভাবে এ থেকে মুক্তি পাবেন? মূলত, আমি প্রতিটি ইনপুট ক্ষেত্র এবং "ওকে" বোতাম এমনকি নরম কীবোর্ড পপ আপ দেখতে চাই।


4
<স্ক্রোলভিউ> সরান, লিনিয়ারলআউটটি আপনার বহিঃস্থ বিন্যাস হওয়া উচিত, এটি কাজ করবে, আমি আশা করি সফিবোর্ড পপ আপ হলেও।
আবিদ এ। চৌধুরী চৌধুরী

4
@ পাকশাহীন এটি যখন স্ক্রোলভিউয়ের প্রয়োজন হবে তখন সমস্যাটি সমাধান করবে না।
Luten

এখানে ওয়ার্কিং কোড। stackoverflow.com/questions/7417123/…
ভেঙ্কট

উত্তর:


126

আমি নিম্নলিখিত বৈশিষ্ট্য নির্ধারণ করে সমস্যা সংশোধন <activity>এর Andro আইডি

android:windowSoftInputMode="adjustResize"

12
আপনার স্টেটভিজিবল দরকার নেই। এটি যখন অ্যাপ্লিকেশনটি চালু করা হয় তখনও নরম কীবোর্ডটি উপস্থিত হয় যখন কোনও সম্পাদনা
পাঠ্যর

এটি স্বয়ংক্রিয়ভাবে কীবোর্ডটি খোলার এমনকি সম্পাদনা নেই
মিস্টার এক্স

37

ঠিক আছে, সমস্যাটি খুঁজতে আমি এখন বেশ কয়েক ঘন্টা অনুসন্ধান করেছি এবং এটি পেয়েছি।

কোনও পরিবর্তনই আমার মতো fillViewport="true"বা android:windowSoftInputMode="adjustResize"সহায়তা করে না।

আমি অ্যান্ড্রয়েড ৪.৪ ব্যবহার করি এবং এটিই বড় ভুল :

android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"

কোনওরকম, সফটকিবোর্ডটি দৃশ্যমান হওয়ার পরে ফুলস্ক্রিন থিমগুলি স্ক্রোলভিউগুলি স্ক্রোল করা থেকে রোধ করে।

এই মুহূর্তে, আমি পরিবর্তে এটি ব্যবহার করে শেষ করেছি:

android:theme="@android:style/Theme.Black.NoTitleBar

সময় এবং ব্যাটারি ডিসপ্লে সহ শীর্ষ সিস্টেম বার থেকে কীভাবে মুক্তি পাবেন তা আমি জানি না, তবে কমপক্ষে আমি সমস্যাটি পেয়েছি।

আশা করি এটি অন্যদেরও একই সমস্যা যারা সহায়তা করে।

সম্পাদনা: আমি আমার মামলার জন্য একটু অনুশীলন পেয়েছি, তাই আমি এটি এখানে পোস্ট করেছি :

এটি আপনার পক্ষে কাজ করবে কিনা তা সম্পর্কে আমি নিশ্চিত নই তবে এটি অবশ্যই আপনাকে বুঝতে এবং কিছু জিনিস পরিষ্কার করতে সহায়তা করবে।

সম্পাদনা 2: এখানে আরও একটি ভাল বিষয় যা আপনাকে সঠিক পথে যেতে বা এমনকি আপনার সমস্যার সমাধান করতে সহায়তা করবে।


+1 আমার ক্ষেত্রে স্থিতি বারটি কোনও তৃতীয় পক্ষের লাইব দ্বারা কোডে লুকানো ছিল: getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
ডি।

@ কিউরেট যদি আমার দুজনের দরকার হয়? পূর্ণ স্ক্রিন এবং স্ক্রোলিং।
প্রবস

@ প্র্যাবস আপনি কি কোনও সমাধান খুঁজে পেয়েছেন? আমি পূর্ণ স্ক্রিন এবং স্ক্রোলিং উভয়ই চাই।
জনি

@ জোহনি নোপ আপাতত আমি স্ক্রোলিং 3 এর ক্রিয়াকলাপ বাদে পুরো অ্যাপ্লিকেশনটির জন্য পূর্ণ পর্দা ব্যবহার করছি।
প্রব

@ প্র্যাবসগুলি কেবলমাত্র সমাধান হিসাবে আমি ভেবেছিলাম স্বচ্ছ স্ট্যাটাস বার রয়েছে তবে আমার ক্ষেত্রে এটি একটি সমস্যা আটকে আছে কারণ আমি এপিআই> = 16 সমর্থন করতে চাই। যদি আপনার কোন ধারণা আছে?
জনি

21

আমার জন্য কাজ করা একমাত্র কাজটি এই কর্মসূচির মধ্যে প্রকাশিত ক্রিয়াকলাপে রাখা হয়:

android:windowSoftInputMode="stateHidden|adjustPan"

ক্রিয়াকলাপটি খোলার সময় কীবোর্ডটি প্রদর্শন না করার জন্য এবং দৃশ্যের নীচে ওভারল্যাপ করবেন না।


14

কোনও পূর্ণস্ক্রিন মোডে এটি আপনার ম্যানিফেস্টের ভিতরে এটি রাখুন

android:windowSoftInputMode="stateVisible|adjustPan" 

আপনার ম্যানিফেস্টে

<activity
    android:windowSoftInputMode="stateVisible|adjustPan"
    android:name="com.example.patronusgps.MainActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

4
আমি এই চেষ্টা করেছি কিন্তু unfrotunately, সব সময়ে কোন ভাগ্য ... যাইহোক, মূল দৃশ্য না একটি ScrollView, কিন্তু একটি RelativeLayoutযা ধারণ করে LinearLayoutযা পরে একটি রয়েছেScrollView
জেমস Heald

11

আপনার Manifestসংজ্ঞায়িত windowSoftInputModeসম্পত্তিতে:

<activity android:name=".MyActivity"
          android:windowSoftInputMode="adjustNothing">

4
@ জ্যাকোব্রাস দয়া করে এই লিঙ্কটি পরীক্ষা করুন: ডেভেলপার.অ্যান্ড্রয়েড / রেফারেন্স / এ্যান্ড্রয়েড / it এর মান "অ্যাডজাস্টিং কিছু না" রয়েছে :)
মোহাম্মদ

4
আমারও একই সমস্যা, তবে স্ক্রোলভিউ অ্যাডজাস্টের সাথে কাজ করে না কিছুই :(
নরেন্দ্র সিং

8

এটা পরীক্ষা করো.

<activity android:name=".Calculator"
    android:windowSoftInputMode="stateHidden|adjustResize" 
    android:theme="@android:style/Theme.Black.NoTitleBar">
</activity>


2

এছাড়াও আপনি যদি প্রোগ্রামটিগতভাবে তা করতে চান তবে ক্রিয়াকলাপের অনক্রিটটিতে কেবল নীচের লাইনটি যুক্ত করুন।

getWindow().setSoftInputMode(
            WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | 
            WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE );

1

আপনার সমস্যা সমাধানের জন্য আপনি নীচের কোডটি ব্যবহার করে দেখতে পারেন:

 <activity
     android:name=".DonateNow"
     android:label="@string/title_activity_donate_now"
     android:screenOrientation="portrait"
     android:theme="@style/AppTheme"
     android:windowSoftInputMode="stateVisible|adjustPan">
 </activity>

17
আপনার কোডটি উত্তর হিসাবে কেবল একটি শুকনো টুকরো কোড পোস্ট করার পরিবর্তে কী করে তা বোঝানো আপনার বিরক্ত করা উচিত।
অ্যাঞ্জেল পোলাইটিস

0

তবে আমি যে সহজ উত্তরটি চেষ্টা করেছি তা হ'ল আপনার কোডটি মুছে ফেলা যা ক্রিয়াকলাপটিকে পুরো স্ক্রিনে ফেলে।

যদি (বিল্ড.ভি.এস.আর।

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
                WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
    }

আমি কেবল আমার কোডটি সরিয়ে ফেলেছি এবং এটি পুরোপুরি সূক্ষ্মভাবে কাজ করে যদিও আপনি যদি আপনার ফুলস্ক্রিন দিয়ে এটি অর্জন করতে চান তবে আপনাকে আরও কিছু পদ্ধতি ব্যবহার করতে হবে

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