2017-11-07 10 views
-1

그냥 TextView 인보기를 부 풀리고 있습니다. 상위보기는 LinearLayout입니다.하위보기에 여백 할당

 <LinearLayout 
      android:id="@+id/posmSelectedBrandsLL" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:layout_marginLeft="15dp" 
      android:layout_marginRight="15dp" 
      android:layout_below="@+id/brandPOSMspinner"/> 

내 아이 뷰는 다음과 같습니다 : 내 부모 뷰는 다음과 같습니다

 final LinearLayout editParentLL = (LinearLayout) findViewById(R.id.posmSelectedBrandsLL); 
     final View editChildView = getLayoutInflater().inflate(R.layout.tag_layout, null); 
     editParentLL.addView(editChildView); 

     TextView tvChip = editChildView.findViewById(R.id.chip12345); 
     tvChip.setText(p.getProductName()); 

그리고 오는 결과 :

<TextView 
    android:id="@+id/chip12345" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:background="@drawable/tag_background" 
    android:text="TAG" 
    android:layout_marginTop="50dp" 
    android:paddingLeft="10dp" 
    android:paddingTop="10dp" 
    android:paddingBottom="10dp" 
    android:paddingRight="10dp" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="10dp" 
    android:textColor="@color/textcolorLogin" 
    android:textSize="22sp" /> 

이 내가보기를 팽창하고있어 어떻게 다음과 같습니다.

enter image description here

내가 원하는 것은 TextView 세 개를 서로 분리하는 것입니다. 그래서 하나의 상자 대신 3 개의 다른 상자로 나옵니다.

귀하의 도움이 필요합니다. 감사합니다.

+0

단일 텍스트 뷰를 부 풀리시겠습니까? 동일한 값으로 다른 값을 얻거나 3 개의 다른 값에 대해 세 개의 textview를 사용하고 있습니까? – Umair

+0

@Umair, 단일 텍스트 뷰를 부 풀리고 있습니다. 사실 나는 버튼 클릭에 대한 자식 뷰를 팽창시키고 있습니다. 그래서 사용자가 버튼을 여러번 클릭 할 때 클릭 한 항목에 따라 다른 값으로 자식 뷰가 부풀려집니다. – 3iL

+0

단일 부모에서 여러 하위 뷰를 확장하고 여백을 프로그래밍 방식으로 설정할 수 있습니다. 아래에 표시된 답변을 참조하십시오. – 3iL

답변

2

시도해보기

final View editChildView = getLayoutInflater().inflate(R.layout.view_add_item_with_details, null); 
     LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
     layoutParams.setMargins(10,2,10,2); 
     editChildView.setLayoutParams(layoutParams); 
     editParentLL.addView(editChildView); 

     TextView tvChip = editChildView.findViewById(R.id.chip12345); 
     tvChip.setText(p.getProductName()); 

.setMargin 메소드의 값을 설정할 수 있습니다

+0

을 참조하십시오. 고마워요! – 3iL

1

당신은 당신의 editChildView 여백을 설정의 LayoutParams를 사용해야합니다

LayoutParams params = new LayoutParams(
     LayoutParams.WRAP_CONTENT,  
     LayoutParams.WRAP_CONTENT 
); 
params.setMargins(left, top, right, bottom); 
editChildView.setLayoutParams(params); 

자세한 내용은 여기 reffer : 당신은 하나 하나의 텍스트 뷰가 필요한 경우 https://android--code.blogspot.in/2015/05/android-textview-layout-margin.html

것은, 당신은 Orientation

LinearLayout ll = new LinearLayout(this); 
ll.setOrientation(LinearLayout.VERTICAL); 
처럼 사용할 필요가