[android] 레이아웃에서보기 추가 및 삭제

레이아웃에서보기를 추가 및 삭제하려면 어떻게합니까?



답변

나는 그렇게했다 :

((ViewManager)entry.getParent()).removeView(entry);


답변

ViewStub을 사용하고 전환하려는보기의 레이아웃을 지정합니다. 보기 :

mViewStub.setVisibility(View.VISIBLE) or mViewStub.inflate();

사라합니다:

mViewStub.setVisibility(View.GONE);


답변

이것이 가장 좋은 방법입니다

LinearLayout lp = new LinearLayout(this);
lp.addView(new Button(this));
lp.addView(new ImageButton(this));
// Now remove them 
lp.removeViewAt(0); // and so on

xml 레이아웃이 있으면 동적으로 추가 할 필요가 없습니다.

lp.removeViewAt(0);


답변

레이아웃에 뷰를 추가하려면 클래스의 addView메서드를 사용할 수 있습니다 ViewGroup. 예를 들면

TextView view = new TextView(getActivity());
view.setText("Hello World");

ViewGroup Layout = (LinearLayout) getActivity().findViewById(R.id.my_layout);
layout.addView(view); 

또한 많은 제거 방법이 있습니다. ViewGroup 문서를 확인하십시오 . 레이아웃에서보기를 제거하는 간단한 방법은 다음과 같습니다.

layout.removeAllViews(); // then you will end up having a clean fresh layout


답변

가시성을 변경하려면 :

predictbtn.setVisibility(View.INVISIBLE);

제거 :

predictbtn.setVisibility(View.GONE);


답변

Sameer와 Abel Terefe의 위대한 anwser. 그러나보기를 제거 할 때 내 옵션에서 특정 ID를 가진보기를 제거하고 싶습니다. 방법은 다음과 같습니다.

1, 뷰를 만들 때 ID를 제공하십시오.

_textView.setId(index);

2, ID가있는보기를 제거하십시오.

removeView(findViewById(index));


답변

addView 또는 removeView를 사용할 수 있습니다.

자바:

// Root Layout
LinearLayout linearLayout = new LinearLayout(context);
linearLayout.setGravity(Gravity.CENTER);
linearLayout.setOrientation(LinearLayout.VERTICAL);

// TextView
TextView textView = new TextView(context);
textView.setText("Sample");

// Add TextView in LinearLayout
linearLayout.addView(textView);

// Remove TextView from LinearLayout
linearLayout.removeView(textView);

코 틀린 :

// Root Layout
val linearLayout = LinearLayout(context)
linearLayout.gravity = Gravity.CENTER
linearLayout.orientation = LinearLayout.VERTICAL

// TextView
val textView = TextView(context)
textView.text = "Sample"

// Add TextView in LinearLayout
linearLayout.addView(textView)

// Remove TextView from LinearLayout
linearLayout.removeView(textView)