2012-05-28 3 views
0

Plz проверить ниже относительного расположенияAndroid компонент правка Относительное расположение

 RelativeLayout objRLActionBar=new RelativeLayout(this); 
     objRLActionBar.setId(2534); 
     RelativeLayout.LayoutParams objRLActionBarParams=new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,(int) (screenHeight*layoutHeights[1])); 
     objRLActionBarParams.addRule(RelativeLayout.BELOW,objRLTitleBar.getId()); 
     objRLActionBar.setBackgroundColor(Color.parseColor("#2e4862")); 

     ImageView objIVActivityIcon = new ImageView(this); 
     objRLActionBar.setId(25324); 
     RelativeLayout.LayoutParams objIVActivityIconParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); 
     objIVActivityIconParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT,objRLActionBar.getId()); 
     objIVActivityIcon.setLayoutParams(objIVActivityIconParams); 
     objIVActivityIcon.setImageResource(R.drawable.home_def); 
     objIVActivityIcon.setPadding(2, 0, 2, 0); 
     objRLActionBar.addView(objIVActivityIcon); 

     ImageView objIVSeperator = new ImageView(this); 
     objIVSeperator.setId(25342); 
     RelativeLayout.LayoutParams objIVSeperatorParams=new RelativeLayout.LayoutParams(1,LayoutParams.FILL_PARENT); 
     objIVSeperatorParams.addRule(RelativeLayout.RIGHT_OF,objIVActivityIcon.getId()); 
     objIVSeperator.setLayoutParams(objIVSeperatorParams); 
     objIVSeperator.setImageResource(R.drawable.separator); 
     objIVSeperator.setBackgroundColor(Color.parseColor("#1f3449")); 
     objRLActionBar.addView(objIVSeperator); 

     TextView objTVPageName = new TextView(this); 
     RelativeLayout.LayoutParams objTVPageNameParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); 
     objTVPageNameParams.addRule(RelativeLayout.RIGHT_OF,objIVSeperator.getId()); 
     objTVPageName.setLayoutParams(objTVPageNameParams); 
     objTVPageName.setTextColor(Color.WHITE); 
     objTVPageName.setTextSize(TypedValue.COMPLEX_UNIT_PX,18+sizeAdjust); 
     objTVPageName.setText("House Details"); 
     objTVPageName.setTypeface(null, Typeface.BOLD); 
     objTVPageName.setPadding(2, 0, 2, 0); 
     objRLActionBar.addView(objTVPageName); 

     objRLBody.addView(objRLActionBar,objRLActionBarParams); 

И выход будет, как показано ниже enter image description here

изображение перекрывается с текстом и «разделителем изображения» приходит первым! Мне нужны компоненты в этом порядке objIVActivityIcon, objIVSeperator, objTVPageName. Что плохое код выше плз помочь ...

+0

почему бы вам не использовать XML для описания макета? – hovanessyan

+0

для получения большей гибкости, для удобства использования кода, сокращения количества строк, производительности, лучшей отладки больше, чем я ненавижу xml –

+1

Есть статьи об Android UI/Layout, утверждая, что использование XML лучше с точки зрения производительности. Вы все еще можете использовать повторное использование кода с использованием XML-инфляции, и я сомневаюсь, что вы получите меньше строк, чем использование XML. Большинство разработчиков используют XML - так что код, который вы будете производить, будет трудно поддерживать и поддерживать от других. Тем не менее, каждый человек имеет право не следовать общим рекомендациям. – hovanessyan

ответ

1
objRLActionBar.setId(25324); 

должен быть

objIVActivityIcon.setId(25324); 
Смежные вопросы