DialogFragment并不完全在Gravity.Right的右侧

时间:2016-07-02 13:01:50

标签: android android-layout

我正试图将DialogFragment完全放在手机的右侧。奇怪的是它之前有用,但我不知道我到底做了什么,但我知道这是可能的。

正如您在图片上看到的那样,DialogFragment和屏幕右侧之间有一点空间。我根本不想要那个空间。片段必须完全在右侧。

enter image description here

我的DialogFragment类:

public class FontFragment extends DialogFragment {

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fontmenu, container);
    recyclerView = (RecyclerView) v.findViewById(R.id.fontmenuRcv);

    recyclerView.setHasFixedSize(true);

    FontMenuAdapter fontsAdapter = new FontMenuAdapter(Font.initFonts(getContext()), editText, getContext(), editText.getSelectionStart(), editText.getSelectionEnd(), this);
    recyclerView.setAdapter(fontsAdapter);

    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
    linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    recyclerView.setLayoutManager(linearLayoutManager);

    return v;
}

@Override
public void onResume() {

    getDialog().getWindow().setGravity(Gravity.RIGHT|Gravity.BOTTOM);

    super.onResume();

  }
}

对话片段的布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fontmenuRcv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical">

</android.support.v7.widget.RecyclerView>

1 个答案:

答案 0 :(得分:1)

我使用接受的答案中的这个简单解决方案解决了我的问题:https://stackoverflow.com/a/18554868/5366495

 <style name="CustomDialog" parent="Theme.AppCompat.Light.NoActionBar" >
    <item name="android:windowBackground">@color/white</item>
    <item name="android:windowIsFloating">true</item>
 </style>