2016-07-27 51 views
0

以下是我有:如何以编程方式将TextView和EditText对齐到水平LinearLayout?

LinearLayout horizontalLL = new LinearLayout(thisActivity); 
horizontalLL.setOrientation(LinearLayout.HORIZONTAL); 
horizontalLL.setLayoutParams(new LinearLayoutCompat.LayoutParams(LinearLayoutCompat.LayoutParams.MATCH_PARENT, LinearLayoutCompat.LayoutParams.WRAP_CONTENT,1)); 

TextView captionTV = new TextView(thisActivity); 
captionTV.setText(element.description); 

captionTV.setLayoutParams(new LinearLayoutCompat.LayoutParams(LinearLayoutCompat.LayoutParams.WRAP_CONTENT, LinearLayoutCompat.LayoutParams.WRAP_CONTENT)); 
editText.setLayoutParams(new LinearLayoutCompat.LayoutParams(LinearLayoutCompat.LayoutParams.WRAP_CONTENT, LinearLayoutCompat.LayoutParams.WRAP_CONTENT,0.6f)); 

horizontalLL.addView(captionTV); 
horizontalLL.addView(editText); 

LL.addView(horizontalLL); 

,但效果不好:该EDITTEXT还很短,不填充水平线性布局。我试图设置captionTV的重量,但仍然没有结果。

+2

你试过用MATCH_PARENT替代WRAP_CONTENT为edittext? –

+0

要清楚你的问题,你想编辑文字大小增加或什么,如果它的情况下尝试MATCH_PARENT或给一些手动编号240dp –

回答

2

请做的修改如下

editText.setLayoutParams(new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT,0.6f)); 

您可以使用LinearLayout.LayoutParams.MATCH_PARENTLinearLayout.LayoutParams.WRAP_CONTENT,而不是0这里。

如果可能,请将所有LinearLayoutCompat更换为LinearLayout

1

尝试下面的代码,如果你想你的的EditText自动覆盖剩余空间

LinearLayout horizontalLL = new LinearLayout(this); 
     horizontalLL.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 
     horizontalLL.setOrientation(LinearLayout.HORIZONTAL); 


     TextView captionTV = new TextView(this); 
     captionTV.setText("element.description"); 

     captionTV.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 
     editText.setLayoutParams(new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT , 1)); 

     horizontalLL.addView(captionTV); 
     horizontalLL.addView(editText); 

     LL.addView(horizontalLL); 
1

您需要使用下面的代码:

LinearLayout ll1 = (LinearLayout)findViewById(R.id.ll1); 

     android.widget.LinearLayout horizontalLL = new android.widget.LinearLayout(this); 
     horizontalLL.setOrientation(android.widget.LinearLayout.HORIZONTAL); 
     horizontalLL.setLayoutParams(new android.widget.LinearLayout.LayoutParams(android.widget.LinearLayout.LayoutParams.MATCH_PARENT, 150,1f)); 

     TextView captionTV = new TextView(this); 
     captionTV.setText("Hello textview "); 
     captionTV.setTextColor(Color.BLUE); 
     captionTV.setLayoutParams(new android.widget.LinearLayout.LayoutParams(0, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT,0.4f)); 
     horizontalLL.addView(captionTV); 

     EditText editText = new EditText(this); 
     editText.setText("Hello edittext "); 
     editText.setTextColor(Color.BLUE); 
     editText.setLayoutParams(new android.widget.LinearLayout.LayoutParams(0, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT,0.6f)); 

     horizontalLL.addView(editText); 
     ll1.addView(horizontalLL); 

因为XML重定义如下如下:

<LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:weightSum="1.0"> 
      <TextView 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.40" 
       android:text="test"/> 
      <EditText 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.60" 
       android:text="test"/> 
     </LinearLayout> 
相关问题