2014-12-08 2 views
0

캘린더 앱을 개발 중이며 here으로 표시된 모달 컨테이너에 이벤트 추가 양식을 표시하려고합니다. 사용자 지정 대화 상자를 만들려고했으나 컨테이너의 너비가 내 화면의 90 %를 차지하는 것을 원하는대로 (here is a snapshot of my current dialog box) 수행합니다. 그들의 어쨌든 나는 대화 상자의 크기를 조정하거나 다른 적합한 컨테이너를 사용할 수 있습니다. 미리 감사드립니다.더 나은 맞춤형 Diailog 양식을 구현하는 방법

여기 내 사용자 지정 대화 상자 코드

public class QuickAddEventDialogBox extends Dialog implements View.OnClickListener{ 

private Context context; 
private Button save, discard; 

public QuickAddEventDialogBox(Context context) { 
    super(context); 
    this.context = context; 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.quick_add_event_dialogbox); 


    save = (Button) findViewById(R.id.btn_save); 
    discard = (Button) findViewById(R.id.btn_discard); 

    save.setOnClickListener(this); 
    discard.setOnClickListener(this); 

} 

답변

0

창을 얻고 그것을 setLayout(width, height)를 호출합니다. 그래서 같은 뭔가 :

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.quick_add_event_dialogbox); 

    //set layout here 
    this.getWindow().setLayout(600, 400); 

    ... 

    } 
0

당신이 있는 LinearLayout 사용 가중치를 사용하는 대화 상자의 레이아웃에 시도 했습니까?

있는 LinearLayout match_parent 크기가 내부 0.9의 무게 아이 (대화보기)가 (1 weightSum) 약 읽기 중력 = "센터"또는 layout_gravity = "센터"

를 사용

,519,359 :

여기 http://developer.android.com/guide/topics/ui/layout/linear.html

은 예입니다 : 여기있는 LinearLayout

나는 이것이 당신의 질문을 가장 우아한 방법으로 해결할 것이라고 믿습니다. 당신은 90 %의 폭하려면

getDialog().getWindow().setLayout(w,h); 

:

0

당신과 함께 대화 상자 크기를 조정할 수

Display display = getWindowManager().getDefaultDisplay(); 
getDialog().getWindow().setLayout(display.getHeight() * 0.9, 
    display.getWidth() *x [or wrap_content]); 

은 또한 사람이 가중치를 사용하도록 제안을 좋은 생각 이잖아.