2012-06-16 11 views
25

मैं वर्तमान में एक एंड्रॉइड एप्लिकेशन कर रहा हूं जिसमें कस्टमाइज़ अलर्ट संवाद शामिल है। इसमें एक बटन है, लेकिन मैं बटन के लिए मार्जिन सेट नहीं कर सकता। कोड नीचे दिया गया है। setmargin विधि काम नहीं कर रहाएंड्रॉइड में गतिशील रूप से मार्जिन कैसे सेट करें?

AlertDialog.Builder myDialog = new AlertDialog.Builder(Login.this); 
Button button = new Button(Login.this); 

button.setText("Send"); 
LayoutParams buttonLayoutParams 
    = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

button.setLayoutParams(buttonLayoutParams); 

resetPassword=editText.getText().toString(); 

LinearLayout layout = new LinearLayout(Login.this); 
layout.setOrientation(LinearLayout.VERTICAL); 
layout.addView(textView); 
layout.addView(editText); 
layout.addView(button); 

myDialog.setView(layout); 

उत्तर

44

लिखें मार्जिन सेट करने के लिए कोड के बाद स्थापित करने के लिए इस्तेमाल किया जा सकता है, यह आपकी मदद कर सकता है।

AlertDialog.Builder myDialog = new AlertDialog.Builder(Login.this); 
Button button = new Button(Login.this); 
EditText editText = new EditText(Login.this); 
TextView textView = new TextView(Login.this); 
button.setText("Send"); 
LinearLayout.LayoutParams buttonLayoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
buttonLayoutParams.setMargins(50, 10, 0, 0); 
button.setLayoutParams(buttonLayoutParams); 
String resetPassword = editText.getText().toString(); 
LinearLayout layout = new LinearLayout(Login.this); 
layout.setOrientation(LinearLayout.VERTICAL); 
layout.addView(textView); 
layout.addView(editText); 
layout.addView(button); 
myDialog.setView(layout); 
myDialog.show(); 

उपयोग LinearLayout.LayoutParams या RelativeLayout.LayoutParams बच्चे दृश्य

+0

यह काम नहीं कर रहा है। बटन alertdialog – user1057197

+0

के अंदर है कृपया मेरे संपादित उत्तर देखें, यह मेरे लिए काम कर रहा है। –

+1

नहीं, यह काम नहीं कर रहा है। यह setMargin विधि में buttonlayoutparams में कास्ट जोड़ने में एक त्रुटि दिखाता है। – user1057197

2
buttonLayoutParams.bottomMargin 
buttonLayoutParams.topMargin 
buttonLayoutParams.leftMargin 
buttonLayoutParams.rightMargin 

मार्जिन

+0

यह काम नहीं कर रहा है – user1057197

+1

क्या आप अपने 'लीनियर लयआउट' के लिए लेआउट पैरामीटर सेट कर रहे हैं? – user1458071

2

आप LinearLayout.LayoutParams उपयोग कर रहे हैं, लेकिन नहीं आप ViewGroup.LayoutParams उपयोग कर रहे हैं setMargin() विधि उपलब्ध है की मूल लेआउट के अनुसार। दीपक केशरिया इस पर निर्भर हैं लेकिन यह कई शब्दों में नहीं कहता है।

0
You can set in LinearLayout margin 

LinearLayout ll = new LinearLayout(this); 
ll.setOrientation(LinearLayout.VERTICAL); 
LinearLayout.LayoutParams layoutParams = new 
LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 
LinearLayout.LayoutParams.WRAP_CONTENT); 
layoutParams.setMargins(30, 20, 30, 0); 
Button okButton=new Button(this); 
okButton.setText("some text"); 
ll.addView(okButton, layoutParams); 
संबंधित मुद्दे