2016-02-16 5 views
0

Ребята У меня есть карта и я хочу добавить 2 кнопки на нее с правилом, но addRule() метод не работает. На картинке фигура A встречается, но я хочу сделать цифру B, я имею в виду, я хочу, чтобы кнопки устанавливали align_parent_right и align_parent_bottom, а вторая кнопка была смежна с первой. Когда я запускаю его, появляется фигура А. Какие-либо предложения?RelativeLayout addRule не работает

enter image description here

RelativeLayout.LayoutParams rl= (RelativeLayout.LayoutParams) iView.getLayoutParams();   
RelativeLayout.LayoutParams lparams = new RelativeLayout.LayoutParams(width/4,height/5); 
RelativeLayout.LayoutParams lparams2 = new RelativeLayout.LayoutParams(width/4,height/5); 

removeButton=new Button(mContext); 
modifyButton=new Button(mContext); 

lparams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
lparams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 

cardView.setLayoutParams(rl); 

cardView.addView(removeButton,lparams); 
cardView.addView(modifyButton,lparams2); 
+0

Вы добавляете эти кнопки к фактическому RelativeLayout? Если вы просто добавляете их в виджет CardView из библиотеки поддержки, которая не будет работать, поскольку CardView не является RelativeLayout. – Luksprog

+0

LayoutParams ссылаются на прямой родительский элемент, вы добавляете кнопки в CardView. Если возможно, сделайте это с помощью xml, вы можете включить кнопки в LinearLayout с горизонтальной ориентацией – lubilis

ответ

0

Попробуйте это: -

RelativeLayout mainLayout = (RelativeLayout) findViewById(R.id.mainLayout); 

     CardView cardView = new CardView(this); 
     ViewGroup.LayoutParams cardParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 
     cardView.setLayoutParams(cardParams); 
     mainLayout.addView(cardView); 

     RelativeLayout relativeLayout = new RelativeLayout(this); 
     ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 
     relativeLayout.setLayoutParams(layoutParams); 
     cardView.addView(relativeLayout); 

     LinearLayout linearLayout = new LinearLayout(this); 
     RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
     params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
     linearLayout.setLayoutParams(params); 
     linearLayout.setOrientation(LinearLayout.HORIZONTAL); 
     linearLayout.setGravity(Gravity.RIGHT); 
     relativeLayout.addView(linearLayout); 

     Button removeButton = new Button(this); 
     Button modifyButton = new Button(this); 

     removeButton.setText("Remove"); 
     modifyButton.setText("Modify"); 

     linearLayout.addView(removeButton); 
     linearLayout.addView(modifyButton); 
+0

Я делаю карточку программно –

+0

Обновлен мой код. Создание картографического программного обеспечения. Попробуй это. – Sabari

+0

Работает ?. – Sabari

Смежные вопросы