Lorsque j'essaie d'écrire quelque chose dans un EditText qui se trouve en bas de l'écran, le clavier virtuel masque le EditText. Comment puis-je résoudre ce problème? Voici mon code xml. J'utilise ceci dans un fragment.
<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical" >
<RelativeLayout
Android:layout_width="fill_parent"
Android:layout_height="wrap_content" >
<LinearLayout
Android:id="@+id/linearLayoutTopDetails"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_below="@+id/linearLayoutTop"
Android:layout_marginLeft="6dp"
Android:layout_marginRight="6dp"
Android:layout_marginTop="6dp"
Android:orientation="vertical" >
<LinearLayout
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="@drawable/list_design1"
Android:orientation="vertical" >
<LinearLayout
Android:layout_width="fill_parent"
Android:layout_height="80dp"
Android:layout_weight="100"
Android:orientation="horizontal" >
<ImageView
Android:id="@+id/ImageViewProfImagePostDetail"
Android:layout_width="0dp"
Android:layout_height="fill_parent"
Android:layout_marginTop="2dp"
Android:layout_weight="24.84"
Android:paddingLeft="5dp"
Android:paddingRight="5dp"
Android:paddingTop="5dp" />
<LinearLayout
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_weight="60"
Android:orientation="vertical" >
<TextView
Android:id="@+id/textViewNamePostDetail"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Robin"
Android:textSize="17sp" />
<TextView
Android:id="@+id/textViewLocationPostDetail"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginTop="1dp"
Android:drawableLeft="@drawable/location"
Android:text="beijing, China" />
<TextView
Android:id="@+id/textViewTimeAgoPostDetail"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text=" 18min ago" />
</LinearLayout>
<LinearLayout
Android:layout_width="0dp"
Android:layout_height="fill_parent"
Android:layout_weight="15"
Android:orientation="horizontal" >
<TextView
Android:id="@+id/textViewReportAbusePostDetail"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:background="@drawable/flag"
Android:paddingLeft="5dp" />
<TextView
Android:id="@+id/textViewDeletePostDetail"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center"
Android:layout_marginLeft="15dp"
Android:background="@drawable/delete"
Android:visibility="gone" />
</LinearLayout>
</LinearLayout>
<TextView
Android:id="@+id/textViewDescriptionPostDetail"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginLeft="20dp"
Android:layout_marginTop="2dp"
Android:singleLine="false"
Android:text="Description or caption of the post"
Android:textSize="17sp" />
</LinearLayout>
<ImageView
Android:id="@+id/feedPostedImagePostDetail"
Android:layout_width="fill_parent"
Android:layout_height="200dp"
Android:layout_marginTop="5dp"
Android:scaleType="fitCenter"
Android:visibility="gone" />
<LinearLayout
Android:id="@+id/linearLayoutOptions"
Android:layout_width="fill_parent"
Android:layout_height="33dp"
Android:layout_marginTop="2dp"
Android:layout_weight="100"
Android:background="@drawable/bar"
Android:orientation="horizontal" >
<TextView
Android:id="@+id/textViewShakePostDetail"
Android:layout_width="0dp"
Android:layout_height="fill_parent"
Android:layout_marginLeft="15dp"
Android:layout_weight="25"
Android:drawableLeft="@drawable/like"
Android:gravity="center"
Android:singleLine="true"
Android:text="Shake"
Android:textSize="12sp" />
<TextView
Android:id="@+id/textViewCommentPostDetail"
Android:layout_width="0dp"
Android:layout_height="fill_parent"
Android:layout_weight="41"
Android:drawableLeft="@drawable/comment"
Android:gravity="center"
Android:paddingLeft="20dp"
Android:text="Comment" />
<TextView
Android:id="@+id/textViewSharePostDetail"
Android:layout_width="0dp"
Android:layout_height="fill_parent"
Android:layout_weight="33"
Android:drawableLeft="@drawable/share"
Android:gravity="center"
Android:paddingLeft="20dp"
Android:text="Spread" />
</LinearLayout>
</LinearLayout>
<ListView
Android:id="@+id/listViewFeedsDetail1"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_below="@+id/linearLayoutTopDetails"
Android:layout_marginBottom="4dp"
Android:layout_marginLeft="6dp"
Android:layout_marginRight="6dp"
Android:layout_marginTop="6dp" >
</ListView>
<LinearLayout
Android:id="@+id/linearLayoutPostcomment"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_below="@+id/listViewFeedsDetail1"
Android:background="#FFFFFF"
Android:orientation="horizontal"
Android:weightSum="100" >
<EditText
Android:id="@+id/editTextComment"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_weight="80" />
<Button
Android:id="@+id/buttonPostComment"
Android:layout_width="0dp"
Android:layout_height="wrap_content"
Android:layout_weight="20"
Android:background="#F0F8FF"
Android:text="Post" >
</Button>
</LinearLayout>
</RelativeLayout>
</ScrollView>
J'ai essayé de résoudre ce problème en ajoutant des modifications via le code, mais sans succès.
Ci-dessous, l'image avant et après avoir cliqué sur EditText.
Dans votre manifeste, mettez ceci dans votre activité perticulaire:
Android:windowSoftInputMode="adjustPan"
Pour cela, vous devez déclarer dans votre manifestation d'activité
<activity
Android:name=".activityname"
Android:label="@string/app_name"
Android:windowSoftInputMode="adjustPan|adjustResize" >
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Déclarez windowSoftInputMode = "adjustResize" dans le fichier manifest.xml
<activity
Android:name=".example"
Android:theme="@style/AppTheme.NoActionBar"
Android:windowSoftInputMode="adjustResize" />
fournir une vue de défilement au fichier de disposition xml
<RelativeLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:paddingBottom="16dp"
Android:paddingLeft="16dp"
Android:paddingRight="16dp"
Android:paddingTop="16dp"
Android:fitsSystemWindows="true">
<ScrollView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:fillViewport="true"
Android:isScrollContainer="false">
// add edittext here...
</ScrollView>
</RelativeLayout>
Voici ( solution simple pour problème Android EditText de se cacher derrière SoftKeypad. Utilisez le code dans le fichier AndroidManifest.xml du module de projet.
<activity
Android:name="com.example.MainActivity"
Android:label="@string/activity_main"
Android:windowSoftInputMode="adjustResize|stateHidden" />
Ce code a fonctionné pour moi.
À l'intérieur du fichier manifeste dans la balise d'activité, ajoutez cet attribut:
Android:windowSoftInputMode="adjustResize|stateHidden"
Il existe d'autres valeurs de ce type pour cet attribut (Android:windowSoftInputMode
) qui viendra comme liste de recommandations. Vous pouvez également vérifier avec eux.
Utilisez le code ci-dessous où:
InputMethodManager ipmm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
ipmm.hideSoftInputFromWindow(url.getWindowToken(), 0);
où l'URL dans mon code est:
url = (EditText) findViewById(R.id.eT_webbrowser);
ou essayez ceci:
InputMethodManager ipmm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
ipmm.hideSoftInputFromWindow(null, 0);
Comme autre option, essayez ceci: Cela masque toujours le mode de saisie logicielle de sorte que votre EditText est visible
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
La solution pour moi consistait simplement à l'ajouter à la disposition parent: Android: fitsSystemWindows = "true"
Dans votre AndroidManifest.xml
ajoutez adjustPane
dans la balise d'activité
<activity Android:name=".LoginActivity"
Android:windowSoftInputMode="adjustPan"/>
Cela semble être un bogue dans Android lorsque le mode adjustPan
est défini
Essayez cette EditText
personnalisée avec solution de contournement pour ce problème
https://Gist.github.com/Arjun-sna/768de4ca141798c59a8166a2e5d4a74