Here is what I have:
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);
but the result is bad: the editText is still very short and does not fill the horizontal linear layout. I've tried to set the weight for captionTV too, but still no result.
Please do the change as below
editText.setLayoutParams(new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT,0.6f));
You can use LinearLayout.LayoutParams.MATCH_PARENT
or LinearLayout.LayoutParams.WRAP_CONTENT
instead of 0
here.
If possible replace all LinearLayoutCompat
to LinearLayout
.
Try the following code, if you want that your EditText automatically cover the remaining space :
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);
You need to use below code :
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);
because in XML weight define like below:
<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>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.