调整膨胀的视图无效

时间:2017-03-10 12:14:13

标签: java android views layout-inflater

我正在尝试调整膨胀的视图但不能正常工作

我将此view添加到AlertDialog

 LayoutInflater inflater = getActivity().getLayoutInflater();        
    View view = inflater.inflate(R.layout.popup_util, null,false);
    view.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, 200)); //Set params here


 ......

dialog.setView(view);

popup_util

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/setting_password_popup_element"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/colorPrimary"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtPopUpTitle"
        android:padding="10dp"
        android:layout_centerHorizontal="true"
        android:textColor="#000000" android:textSize="24dp" android:background="@color/colorAccent"/>
        <TextView  android:padding="10dp" android:layout_width="match_parent" android:layout_below="@+id/txtPopUpTitle" android:id="@+id/txtPopUpMessage" android:layout_height="wrap_content" android:textSize="22dp"/>


    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal"
        android:gravity="center_horizontal|bottom">

        <Button android:id="@+id/btnPopUpCancel"
            android:layout_width="match_parent" android:layout_height="50dp"
            android:layout_weight="1"
            android:textSize="24dp"
            android:visibility="gone"
            android:layout_centerHorizontal="true"
            android:background="@android:color/transparent"
            android:text="@string/btn_cancel_text" />

        <Button android:id="@+id/btnPopUpOk"
            android:layout_width="match_parent" android:layout_height="50dp"
            android:textColor="@color/colorAccent"
            android:textSize="24dp"
            android:layout_centerHorizontal="true"
            android:text="@string/btn_ok_text"
            android:background="@android:color/transparent"
            android:layout_weight="1"/>
    </LinearLayout>
</RelativeLayout>

但它不起作用..我缺少什么?

3 个答案:

答案 0 :(得分:0)

你可以试试这段代码:

View view = inflater.inflate(R.layout.active_slide,this); view.setMinimumWidth(200);

答案 1 :(得分:0)

你可以使用这个代码,它在我的情况下很好用

this.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, theSizeIWant));

注意:请务必使用父版面的LayoutParams。我的是LinearLayout.LayoutParams!

答案 2 :(得分:0)

您可以通过将宽度和高度设置为对话框本身的窗口来实现。

alertDialog.getWindow().setLayout(ViewGroup.LayoutParams.WRAP_CONTENT, 200);

您必须在使用dialog.show()

显示对话框后执行此操作