2017-04-18 2 views
0

Im Entwickeln und App in android Studio und jetzt habe ich ein seltsames Problem konfrontiert.Android Studio: Tastenausrichtung in der Tabellenzeile

Ich habe eine tableRow, die eine TextView und eine Button enthält.

Ich baue sie programmgesteuert und ich möchte die button innerhalb der tableRow auf der rechten Seite des Bildschirms ausrichten.

Ich habe schon so viele Möglichkeiten versucht, wie:

button.setGravity(Gravity.RIGHT) und button.setGravity(Gravity.END) und versuchte, Layout params auf den Tisch zu geben, mit mit fill_parent im layout_width aber das nicht zu funktionieren scheinen.

Hier ist der Teil des Codes, wo ich die TableRow bauen:

TableRow new_tablerow = new TableRow(getContext()); 
         layout_pickup_passengers.addView(new_tablerow); 

         LinearLayout.LayoutParams rowParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
         new_tablerow.setLayoutParams(rowParams); 

         //GLOBAL PASSENGERS 
         TextView text_pass_type = new TextView(getContext()); 
         new_tablerow.addView(text_pass_type); 
         text_pass_type.setTextColor(getResources().getColor(R.color.black)); 
         text_pass_type.setTextSize(TypedValue.COMPLEX_UNIT_SP, 22); 
         text_pass_type.setText("> Passageiros"); 

         //BUTTON 
         // Button 
         final Button button_numberPickerDialog = new Button(getContext()); 
         button_numberPickerDialog.setBackgroundResource(R.color.wallet_bright_foreground_holo_dark); 
         new_tablerow.addView(button_numberPickerDialog); 
         button_numberPickerDialog.setGravity(Gravity.RIGHT); 

Und das ist, was ich bekommen:

enter image description here

So hat man nur den Text nach innen sehen ausrichtet zu das Recht (die 0-Nummer), und ich möchte, dass der Button rechts und nicht der darin enthaltene Text rechtsbündig ist.

Antwort

0

Die hier erwähnte Methode "setGravity(int)" konnte nicht so funktionieren, wie Sie es sich vorgestellt haben, da die Methode mit dem Attribut "andriod:gravity" in xml identisch ist.

Eigentlich frage ich mich, warum Sie darauf bestehen, sie programmatisch zu bauen. Ich denke, wenn Sie sie in XML erstellen, können Sie "android : layout_gravity" verwenden.


Ich versuche RaletiveLayout zu verwenden, dass die Arbeit hier zu machen ist der Code:

//TableRow new_tablerow = new TableRow(getBaseContext()); 
     //layout_pickup_passengers.addView(new_tablerow); 

     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 

     RelativeLayout relativeLayout = new RelativeLayout(this); 
     layout_pickup_passengers.addView(relativeLayout,params); 

     //GLOBAL PASSENGERS 
     TextView text_pass_type = new TextView(getBaseContext()); 
     RelativeLayout.LayoutParams lp_text = new RelativeLayout.LayoutParams(
       ViewGroup.LayoutParams.WRAP_CONTENT, 
       ViewGroup.LayoutParams.WRAP_CONTENT 
     ); 
     lp_text.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
     text_pass_type.setTextColor(getResources().getColor(R.color.colorPrimary)); 
     text_pass_type.setTextSize(TypedValue.COMPLEX_UNIT_SP, 22); 
     text_pass_type.setText("> Passageiros"); 
     relativeLayout.addView(text_pass_type,lp_text); 

     //BUTTON 
     // Button 
     final Button button_numberPickerDialog = new Button(getBaseContext()); 
     button_numberPickerDialog.setBackgroundResource(R.color.colorPrimaryDark); 
     RelativeLayout.LayoutParams lp_button = new RelativeLayout.LayoutParams(
       ViewGroup.LayoutParams.WRAP_CONTENT, 
       ViewGroup.LayoutParams.WRAP_CONTENT 
     ); 
     lp_button.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
     relativeLayout.addView(button_numberPickerDialog,lp_button); 

ich vielleicht ein wenig ändern, um Ihren Code zu machen. könnte es dich opfern? enter image description here

+0

Ich kann sie in xml bauen, weil es ist eine Buchung App, und dieser Teil ist abhängig von der vorherige Benutzerauswahl in der Anwendung –

+0

gut, wie für mich, vielleicht würde ich versuchen RelativeLayout als Ansicht zu verwenden, anstatt –

+0

I brauche ein 'TableLayout', weil ich in einigen Fällen mehr 'tableRows' hinzufügen muss und es muss ausgerichtet werden –

Verwandte Themen