Yanıtlar:
Yazılım klavyesi açıldığında neyin görüneceğini nasıl kontrol edeceğinizi mi soruyorsunuz? WindowSoftInputMode ile oynamak isteyebilirsiniz . Daha fazla tartışma için geliştirici belgelerine bakın .
android:fitsSystemWindows="true"
çözmek için kök görünümünüze ekleyin .
Aynı sorunları yaşadım. Aşağıdaki kodu deneyin:
android:windowSoftInputMode="adjustPan"
girdiyi tutan etkinliğin etkinlik etiketindeki manifest.xml dosyasına ekleyin. misal:
<activity
android:name=".Activities.InputsActivity"
...
android:windowSoftInputMode="adjustPan"
/>
adjustResize
, ama aynı zamanda benim girdi alanları da kapsar
Yazılımın ekranın alt kısmına yerleştirilen EditText görünümlerinin üstünde olduğu ile aynı sorunu yaşadım. AndroidManifest.xml dosyamın ilgili etkinliğine tek bir satır ekleyerek bir çözüm bulabildim.
android:windowSoftInputMode="adjustResize|stateHidden"
Etkinlik etiketinin tamamı şöyle görünür:
<activity
android:name="com.my.MainActivity"
android:screenOrientation="portrait"
android:label="@string/title_activity_main"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>
Burada en önemli değer adjustResize'dir. Bu, yazılım klavyesine yer açmak için tüm kullanıcı arayüzünü yukarı kaydırır.
adjustResize|stateHidden
ve hiçbir fark yaratmadı adjustPan
.
Neden kaydırmak istediğinizi sarmak için bir ScrollView eklemeye çalışmıyorsunuz? Yumuşak tuş takımını açtığınızda diyalog widget'ları (özellikle EditTexts) kaydırırken, bunu yapmadım, üstte kaydırma yapmayan bir üstbilgi bırakıyorum.
<LinearLayout android:id="@+id/HeaderLayout" >
<!-- Here add a header or whatever will not be scrolled. -->
</LinearLayout>
<ScrollView android:id="@+id/MainForm" >
<!-- Here add your edittexts or whatever will scroll. -->
</ScrollView>
Genellikle ScrollView içinde bir LinearLayout olurdu, ama bu size kalmış. Ayrıca, Kaydırma çubuğu stilini outsideInset olarak ayarlamak en azından aygıtlarımda yardımcı olur.
Tek yapman gereken
android:isScrollContainer="true"
kaynak: http://www.davidwparker.com/2011/08/25/android-fixing-window-resize-and-scrolling/
Eski bir ileti android:imeOptions="flagNoFullscreen"
dizisini yeniden canlandırdığım için üzgünüm, ancak EditText öğenizde hiç kimse belirtilmedi
android:windowSoftInputMode="adjustPan"
android:isScrollContainer="true"
android EditText için çalışıyor, webview veya xwalkview için çalışmıyor. Yazılım klavyesi girişi web görünümünde veya xwalkview'de gizlediğindeandroid:windowSoftInputMode="adjustResize"
Sonunda seçim yöntemleriyle programlı olarak elde edilebilen topunu kullanarak kaydırma yapabileceğinizi düşünüyorum, ama bu sadece bir fikir. Topunu yönteminin tipik olarak çalıştığını biliyorum, ancak bunu yapmanın ve koddan çalışmasını sağlamanın tam yolu gelince, emin değilim.
Umarım yardımcı olur.
bu tek satırı göreli etkinliğinize ekleyin; burada anahtar kartı kapağı text.inside onCreat () etkinlik yöntemini düzenler.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
EditText Alanı Klavye ile kaplanmışsa Aşağıdaki kodu kullanın:
EditText= findViewById(R.id.edittext)
EditText?.getParent()?.requestChildFocus(EditText,EditText)
İsterseniz İmleç kullanımı daha Odaklanmış EditText olmak EditText.requestFocus()
sonra EditText?.getParent()?.requestChildFocus(EditText,EditText)
Odaklanmış EditText içinde odağı ve İmleç almak için yardımcı olan.
AndroidManifest.xml dosyanızı düzenleyin
android:windowSoftInputMode="adjustResize"
Bunu Layout dosyasının kök görünümüne ekleyin.
android:fitsSystemWindows="true"
Bu kadar.