2016-07-10 2 views
2

타블렛에서 바닥 시트가 모든 너비를 차지하지 않아야합니다. 그러나 XML에서 layout_width 속성을 무시합니다. 어떻게 만들 수 있습니까? 맨 아래 시트 클래스 :하단 용지 너비를 제어하는 ​​방법은 무엇입니까?

public class DetailsFragment extends BottomSheetDialogFragment { 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     //Create fragment root view 
     View view = inflater.inflate(R.layout.fragment_details, container, false); 
     //Set toolbar 
     Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar); 
     Drawable icClose = VectorDrawable.getDrawable(getContext(), R.drawable.ic_close_white_24dp); 
     toolbar.setNavigationIcon(icClose); 
     toolbar.setNavigationOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       dismiss(); 
      } 
     }); 
     toolbar.inflateMenu(R.menu.details); 
     RecyclerView rvContent = (RecyclerView) view.findViewById(R.id.rvContent); 
     FullExpandedListManager lm = new FullExpandedListManager(getContext()); 
     rvContent.setLayoutManager(lm); 
     rvContent.setHasFixedSize(true); 
     rvContent.setAdapter(mAdapter); 

     return view; 
    } 
} 

답변

1

나는 이것이 최선의 해결책이라고 확신하지 못합니다. 그러나 적어도 그것은 나를 위해 일합니다.

public class DetailsFragment extends BottomSheetDialogFragment { 
    @NonNull 
    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     return new BottomSheetDialog(getContext(), getTheme()); 
    } 

    public static class BottomSheetDialog extends android.support.design.widget.BottomSheetDialog { 

     public BottomSheetDialog(@NonNull Context context) { 
      super(context); 
     } 

     protected BottomSheetDialog(@NonNull Context context, final boolean cancelable, 
            OnCancelListener cancelListener) { 
      super(context, cancelable, cancelListener); 
     } 

     public BottomSheetDialog(@NonNull Context context, @StyleRes final int theme) { 
      super(context, theme); 
     } 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      getWindow().setLayout(300 /*our width*/, ViewGroup.LayoutParams.MATCH_PARENT); 
     } 
    } 
} 

P. onStart() 메서드에서 대화 상자 너비를 설정하려고했지만 작동하지 않고 이유를 모르겠습니다.

+0

차갑다. 챔피언으로 일했다. –

관련 문제