সফ্ট কীবোর্ডটি অ্যান্ড্রয়েড দেখানো হলে কীভাবে লেআউটটি উপরে সরানো যায়


85

আমার দুটি নিয়ে লগইন স্ক্রিন রয়েছে EditTextsআমার লেআউটে এবং একটি লগইন বোতাম । সমস্যাটি হ'ল, আমি যখন টাইপ করা শুরু করি তখন নরম কীবোর্ড প্রদর্শিত হয় এবং লগইন বোতামটি coversেকে দেয়। কীবোর্ডটি উপস্থিত হওয়ার পরে আমি কীভাবে লেআউটটিকে উপরে বা উপরে ঠেকাতে পারি?

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

উত্তর:


59

windowSoftInputModeসম্পত্তি সেট করুন adjustPanএবংadjustResize

<activity android:windowSoftInputMode="adjustPan|adjustResize"> </activity>

33
এটি বাক্সটির বাইরে চলে আসে নি, তবে <activity android:windowSoftInputMode="adjustResize"></activity>এটির কাজটি করার জন্য এটি পরিবর্তন করে ।
নিকিয়াকনিস

4
আপনি কোন অ্যান্ড্রয়েড সংস্করণটি ব্যবহার করছেন তা উল্লেখ করুন। কিছু উত্তর কিছু সংস্করণে সম্পূর্ণ অকেজো হতে পারে।
জোশ

যেমন @ নিকিউকনিস বলেছিলেন, আমার 'অ্যাডজাস্টপ্যান' প্যারামিটারের দরকার নেই এবং এটি আমার পক্ষে কাজ করে, আপনাকে ধন্যবাদ
ড্যানিসুপ্রু 4

জামারিন.ফর্মস পোর্টেবল প্রকল্পের জন্য কি সমমানের উপলব্ধ রয়েছে? সুতরাং প্রতিটি স্বতন্ত্র লক্ষ্য প্ল্যাটফর্মের জন্য আমাকে এটি করতে হবে না।
ব্যবহারকারী 20358

6
সেটিংসটি অবশ্যই নিম্নলিখিত টেবিলের তালিকাভুক্ত মানগুলির মধ্যে একটি হতে হবে বা একটি "রাষ্ট্র ..." মান সমেত একটি "সামঞ্জস্য ..." মানের সমন্বয়। দুটি গ্রুপে একাধিক মান নির্ধারণ করা - একাধিক "রাষ্ট্র ..." মান, উদাহরণস্বরূপ - অপরিবর্তিত ফলাফল রয়েছে। বিকাশকারী.অ্যান্ড্রয়েড
গাইড

34

ক্রিয়াকলাপের সাথে সম্পর্কিত অ্যান্ড্রয়েড মেনিফেস্ট ফাইলে এটি ব্যবহার করে দেখুন।

<activity android:windowSoftInputMode="adjustPan"> </activity>

4
আমার লাউআউটটি প্রথমবারের দিকে চলে যায়, তবে কীবোর্ডটি বন্ধ করে আবার খোলার সময় নড়াচড়া হয় না।
নাবেগে

24

onCreate()পদ্ধতিতে এই কোডটি ব্যবহার করুন :

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

4
ধন্যবাদ, যে সাহায্য করেছে। <ক্রিয়াকলাপ অ্যান্ড্রয়েড: উইন্ডোসফট ইনপুটমোড = "অ্যাডজাস্টপ্যান"> </activity> কোনও কারণে আমার পক্ষে কাজ করে নি।
DH28

4
এই পদ্ধতিটি, তবে SOFT_INPUT_ADJUST_RESIZEADJUST_PAN এর পরিবর্তে ব্যবহার করুন, আমার পক্ষে কাজ করেছেন
Voy

17

কেবল

android:windowSoftInputMode="adjustResize"

ম্যানিফেস্ট ফাইলের অভ্যন্তরে আপনার ক্রিয়াকলাপ ট্যাগটি কৌশলটি করবে


আমি কনস্ট্রেন্টলআউট ব্যবহার করছি, এই সমাধানটি আমার পক্ষে কার্যকর হয় না।
করণ শর্মা

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


10

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


4
কীবোর্ড দেখানোর সময় আমি লেআউটটিকে উপরে সরিয়ে নিতে সক্ষম হয়েছি, কিন্তু কী বোর্ডটি লুকিয়ে থাকার সময় এটির মূল অবস্থানে যেতে অক্ষম, আপনি কি আমাকে এতে সহায়তা করতে পারেন?
কিশোর

9
android:fitsSystemWindows="true"

লেআউট ফাইলের প্রধান বিন্যাসে সম্পত্তি যুক্ত করুন এবং

android:windowSoftInputMode="adjustResize"

আপনার অ্যাক্টিভিটিতে আপনার ম্যানিফেস্ট.এক্সএমএল ফাইলটিতে লাইন যুক্ত করুন

এটা আমার জন্য নিখুঁত কাজ।


ফিটসিসটম উইন্ডোজের কীবোর্ডের সাথে কোনও সম্পর্ক নেই
টিম

@ টিমকাস্টেলিজনস, আমার ক্ষেত্রে (পূর্ণস্ক্রিন কার্যকলাপ) এটি গুরুত্বপূর্ণ। যদি সেট করা থাকে তবে falseদেখা যাবে না move
কুলমাইন্ড

6

ম্যানিফেস্ট ফাইলে আপনার ক্রিয়াকলাপের ঘোষণায় এটি রাখুন <activity android:windowSoftInputMode="adjustPan|adjustResize"> </activity>

অথবা আপনি যদি চান তবে আপনি আপনার ক্রিয়াকলাপের onCreate () পদ্ধতিতে যুক্ত করতে পারেন

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

4
ম্যানিফেস্ট কোডটি ভুল, এইভাবে আচরণটি সংজ্ঞায়িত হয় (আপনি দুটি বিবাদ মান নির্ধারণ করেছেন, অফডোক দেখুন: ডেভেলপার andঅ্যান্ড্রয়েড / গাইড / টপিকস / ম্যানিফেস্ট / android:windowSoftInputModedescription , বর্ণনা)। @ কিউইকম্বম্ব ১২৩, একটি প্যারামিটার বা সিস্টেম আপনার জন্য বেছে নেবে (এবং এই পছন্দটি অন্য ডিভাইস / এপিআই ভেরিয়নে পরিবর্তন করতে পারে)
কেপওয়ার ২৮

3

এই সমস্ত প্রয়োজন:

<activity android:windowSoftInputMode="adjustResize"> </activity>

2

এই accoding নির্দেশিকা , এই অর্জন করার সঠিক উপায় আপনার ম্যানিফেস্টে ঘোষণা করে হল:

<activity name="EditContactActivity"
        android:windowSoftInputMode="stateVisible|adjustResize">

    </activity>

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

2

সফটকিবোর্ড উপস্থিত হওয়ার সাথে সাথে এটি মূল বিন্যাসের আকার পরিবর্তন করে এবং আপনার যা করা দরকার তা হল সেই মূল প্লেটের জন্য শ্রোতা তৈরি করা এবং সেই শ্রোতার মধ্যে, কোডটি scrollT0(x,y)স্ক্রোল করার জন্য যুক্ত করুন।


2

আপনি যদি জামারিনের সাথে কাজ করছেন তবে আপনি এই কোডটি মেইনএকটিভিটি WindowSoftInputMode =Android.Views.SoftInput.AdjustPan | Android.Views.SoftInput.AdjustResizeশ্রেণীর ক্রিয়াকলাপের বৈশিষ্ট্যে রাখতে পারেন । উদাহরণস্বরূপ, এখন ক্রিয়াকলাপের বৈশিষ্ট্যটি নীচের মত দেখাবে

    [Activity(WindowSoftInputMode =Android.Views.SoftInput.AdjustPan | Android.Views.SoftInput.AdjustResize)]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
    {
        //some code here.
    }

2

আমি মেনিফেস্টে কোড যুক্ত করে এটি সমাধান করেছি:

<activity android:name=".Login"
        android:fitsSystemWindows="true"
        android:windowSoftInputMode="stateHidden|adjustPan"
</activity>

নিখুঁত। ফিটসিসটেম উইন্ডোস আমার জন্য কাজ করেছিল।
বাওয়া

1

আপনার ব্যবহার করা উচিত

android:windowSoftInputMode="adjustPan|stateHidden"

আপনার AndroidManifest.xmlফাইলে যেখানে আপনি আপনার কার্যকলাপ ঘোষণা করছেন। বিন্যাসে কীবোর্ড দেখানো হলে এটি আপনার বিন্যাসের সামগ্রীগুলি সামঞ্জস্য করবে।


0

আপেক্ষিক বিন্যাসটি ব্যবহার করুন এটি দৃশ্যকে সামঞ্জস্য করবে যাতে পাঠ্যটি টাইপ করার সময় আপনি সেই দৃশ্যটি দেখতে পান


0

এটি আমার জন্য কবজির মতো কাজ করে

getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

-2

এটি অবশ্যই আপনার জন্য কাজ করবে।

অ্যান্ড্রয়েড: উইন্ডোসফট ইনপুটমোড = "অ্যাডজাস্টপ্যান"


4
আপনি কিছু ব্যাখ্যা যোগ করতে পারেন ...?
শেভিবো 20

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