Je veux régler max hauteur dans la boîte de dialogue fragment
<?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"
android:minWidth="@dimen/dialog_min_width"
android:padding="@dimen/dialog_padding"
android:background="@drawable/dialog_background" >
<TextView android:id="@+id/base_dialog_title"
style="@style/DialogTitleTextViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:gravity="center" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="16dp" >
</FrameLayout>
<!-- *********************** HERE ************************* -->
<FrameLayout android:id="@+id/base_dialog_content"
android:background="@drawable/dialog_description_background"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</FrameLayout>
<!-- *********************** HERE ************************* -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="16dp" >
</FrameLayout>
<LinearLayout android:id="@+id/base_dialog_button_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal">
<Button
android:id="@+id/base_dialog_button_negative"
style="?android:attr/buttonStyleSmall"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="gone"/>
<Button
android:id="@+id/base_dialog_button_neutral"
style="?android:attr/buttonStyleSmall"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="gone"/>
<Button
android:id="@+id/base_dialog_button_positive"
style="?android:attr/buttonStyleSmall"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="gone"/>
</LinearLayout>
</LinearLayout>
Ce fragment de dialogue mise en page.
- Je ajouter d'affichage de contenu (TextView ou ListView) dans FrameLayout (@id/base_dialog_content)
Quand ListView a de nombreux Éléments, Dialogue est toute la hauteur de la fenêtre.
Je veux régler la hauteur maximale de dialogue ou affichage de contenu (ou liste)
Edit:
- Je résoudre le problème à l'aide de OnLayoutChangeListener.
Mais j'ai besoin de la même fonction dans la version inférieure (ci-dessous en Nid d'abeille)
Dans DialogFragment.onCreateView()
FrameLayout contentContainer = (FrameLayout) view.findViewById(R.id.base_dialog_content);
final View contentView = createContentView(inflater, contentContainer);
contentContainer.addView(contentView);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
//TODO Check content view height and change height
} else {
view.addOnLayoutChangeListener(new OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right,
int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
int height = v.getHeight();
int contentHeight = contentView.getHeight();
int winHeight = ActivityUtil.getDisplayHeight(getSherlockActivity());
LogUtils.pe(height+" /"+winHeight+" /"+contentHeight);
int needHeight = height - winHeight*8/10;
if (needHeight > 0) {
contentView.setLayoutParams(
new LayoutParams(LayoutParams.MATCH_PARENT, contentHeight-needHeight));
}
}
});
}
quelle est la durée maximale de la hauteur que vous voulez?est-il défini en dp ou en fonction de la taille de l'écran?
la taille de l'écran", c'est mieux. mais "la valeur de la constante dans dp" est bon pour moi, trop.
Veuillez voir ma réponse 🙂
la taille de l'écran", c'est mieux. mais "la valeur de la constante dans dp" est bon pour moi, trop.
Veuillez voir ma réponse 🙂
OriginalL'auteur ChangUZ | 2013-05-28
Vous devez vous connecter pour publier un commentaire.
pour contrôler la hauteur maximale, vous devez mettre l'affichage du contenu dans un conteneur de mise en forme première (Linéaire/Relative) disons que dans mon exemple, je vais utiliser linearlayout
pour mesurer la hauteur de l'écran (je l'ai mis dans Util.java ):
après que vous créez un conteneur :
après que vous ajoutez le textview/listview le contenant, puis vous ajoutez le conteneur pour le framelayout. J'espère que ma réponse est assez claire pour vous, mais si vous avez d'autre question n'hésitez pas à demander dans les commentaires 🙂
ah désolé j'ai mal compris ce que tu veux dire, s'il vous plaît attendre, je vais modifier le code plus tard
mais je pense qu'avec mon code de la vue ne sera pas remplir à nouveau l'écran, ou voulez-vous mesurer tous les enfants de hauteur et d'éviter que le programme pour ajouter plus de vue, si la somme de la hauteur de l'enfant est plus que le parent?
Veuillez voir les modifications...
OriginalL'auteur Niko Adrianus Yuwono
Utiliser ce code pour le plein écran de la hauteur et de la largeur de la boîte de dialogue
OriginalL'auteur anddevmanu