视图以预览为中心,但不在设备上

时间:2015-03-21 17:42:32

标签: android android-layout android-fragments android-studio

我正在为活动添加一个片段,它的布局非常简单:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_vertical"
    android:padding="16dp">

    <Button
        android:id="@+id/fragment_pay_request_pbutton"
       style="@style/ButtonsStyle"
        android:text="Pay" />

    <Button
        android:layout_marginTop="16dp"
        android:id="@+id/fragment_pay_request_rbutton"
        style="@style/ButtonsStyle"
        android:layout_below="@id/fragment_pay_request_pbutton"
        android:text="Request" />
    <Button
        android:layout_marginTop="16dp"
        android:id="@+id/fragment_pay_request_bbutton"
        style="@style/ButtonsStyle"
        android:layout_below="@id/fragment_pay_request_rbutton"
        android:text="Bills" />
</RelativeLayout>

预览中一切正常: enter image description here

但在设备上:

enter image description here

我正在使用Lolipop 5.1和叠加模式来测试布局。

有人知道为什么它不起作用,我能做些什么来解决这类问题。

BTW:片段非常简单:

/**
 * Created by laurentmeyer on 15/03/15.
 */
public class PayOrRequestFragment extends BaseFragment {
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View toReturn = inflater.inflate(R.layout.fragment_pay_request, container, false);
        Button pay = (Button) toReturn.findViewById(R.id.fragment_pay_request_pbutton);
        Button request = (Button) toReturn.findViewById(R.id.fragment_pay_request_rbutton);
        configureButton(request, pay);
        return toReturn;
    }

    private void configureButton(Button request, Button pay) {
        request.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String[] parameters = {"com.payment.laurentmeyer.mobilepayment.fragments.ReceiveFragment", "com.payment.laurentmeyer.mobilepayment.fragments.RequestMethodsFragment"};
                mCallbacks.createSliderWithParameters(parameters);
            }
        });
        pay.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String[] parameters = {"com.payment.laurentmeyer.mobilepayment.fragments.SendFragment", "com.payment.laurentmeyer.mobilepayment.fragments.VerificationFragment"};
                mCallbacks.createSliderWithParameters(parameters);

            }
        });
    }


}

1 个答案:

答案 0 :(得分:1)

您必须将片段放入活动中的视图容器中...您没有发布活动的布局。您的视图容器是否有android:layout_height="wrap_content"