Làm cách nào để tôi có thể loại bỏ một nút hoặc làm cho nó vô hình trong Android?


Câu trả lời:


364

Đặt mức độ hiển thị của nút thành Gone (nút sẽ bị "loại bỏ hoàn toàn" - không gian nút sẽ có sẵn cho các vật dụng khác) hoặc BÍ MẬT (nút sẽ trở nên "trong suốt" - không gian của nó sẽ không có sẵn cho các vật dụng khác):

View b = findViewById(R.id.button);
b.setVisibility(View.GONE);

hoặc trong xml:

<Button ... android:visibility="gone"/>

Khi bạn đặt nó đi, nó vẫn được tính là một đứa trẻ? nếu tôi đã làm một cái gì đó như đếm trẻ em hoặc nhận được con ở chỉ số bao giờ?
Lpc_dark

1
Tôi nghĩ là có, nó vẫn được tính là một đứa trẻ.
Konstantin Burov

11
Và để hiển thị nó như thế này .. b.setVisibility (View.VISIBLE);
Zar E Ahmer

37

Trước tiên, làm cho nút vô hình trong tệp xml. Sau đó, đặt nút hiển thị trong mã java nếu cần.

Button resetButton=(Button)findViewById(R.id.my_button_del);
resetButton.setVisibility(View.VISIBLE); //To set visible

Xml:

<Button
android:text="Delete"
android:id="@+id/my_button_del"
android:layout_width="72dp" 
android:layout_height="40dp"
android:visibility="invisible"/>

Tôi muốn làm cho nút này trở nên vô hình, nhưng điều đó nên được tích cực trong hoạt động, giống như nút Siêu bí mật. Nó không nên hiển thị trong hoạt động, nhưng nút sẽ hoạt động
Samrat Mazumdar

1
Sử dụng "buttonCleanup.setVisibility (View.VISIBLE);" thay vì số không.
Vincent

17

Để loại bỏ nút trong mã java :

Button btn=(Button)findViewById(R.id.btn);
btn.setVisibility(View.GONE);

Để minh bạch Button trong mã java :

Button btn=(Button)findViewById(R.id.btn);
btn.setVisibility(View.INVISIBLE);

Để loại bỏ nút trong tệp Xml :

<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"/>

Để minh bạch nút trong tập tin Xml :

<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"/>


12

Quan điểm này có thể nhìn thấy.

button.setVisibility(View.VISIBLE);

Khung nhìn này là vô hình và nó không chiếm bất kỳ không gian nào cho mục đích bố trí.

button.setVisibility(View.GONE); 

Nhưng nếu bạn chỉ muốn làm cho nó vô hình:

button.setVisibility(View.INVISIBLE);

4

sử dụng setVisibility trong nút hoặc imageViwe hoặc .....
Để xóa nút trong mã java:

Button btn=(Button)findViewById(R.id.btn);
btn.setVisibility(Button.GONE);

Nút trong suốt trong mã java

Button btn=(Button)findViewById(R.id.btn);
btn.setVisibility(Button.INVISIBLE);


Bạn nên tạo cho bạn nút xml mã như dưới đây:

<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"/>


ẩn:
visibility: ra đi
show:
visibility: vô hình
visibility: có thể nhìn thấy


3
button.setVisibility(button.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE);

Làm cho nó hiển thị nếu vô hình và vô hình nếu nhìn thấy


1

Các điều khiển xem (TextView, EditText, Nút, Hình ảnh, v.v.) đều có thuộc tính hiển thị. Điều này có thể được đặt thành một trong ba giá trị:

Hiển thị - Hiển thị

android:visibility="visible"

Vô hình - Ẩn nhưng không gian dành riêng

android:visibility="invisible"

Đã qua - Ẩn hoàn toàn

android:visibility="gone"

Để đặt mức độ hiển thị trong mã, hãy sử dụng hằng số công khai có sẵn trong lớp Chế độ xem tĩnh:

Button button1 = (TextView)findViewById(R.id.button1);
button1.setVisibility(View.VISIBILE);

0

Để loại bỏ hoàn toàn một nút khỏi bố trí cha mẹ của nó:

((ViewGroup)button.getParent()).removeView(button);

0
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/activity_register_header"
    android:minHeight="50dp"
    android:orientation="vertical"
    android:visibility="gone" />

Hãy thử mã này

Khả năng hiển thị hoạt động tốt trong mã này


0

NẾU bạn muốn tạo nút vô hình, sau đó sử dụng nút này:

<Button ... android:visibility="gone"/>

View.INVISIBLE:

Nút sẽ trở nên trong suốt. Nhưng nó chiếm không gian.

View.GONE

Nút sẽ được loại bỏ hoàn toàn khỏi bố cục và chúng ta có thể thêm các tiện ích khác vào vị trí của nút bị loại bỏ.


0

Để truy cập các phần tử từ một lớp khác, bạn chỉ cần sử dụng

findViewById(R.id.**nameOfYourelementID**).setVisibility(View.GONE); 


-2

Hãy thử mã này:

button.setVisibility(View.INVISIBLE);

9
bạn thực sự không nên sử dụng các giá trị được mã hóa cứng trong phương pháp này - chỉ cần sử dụng Hằng số - View.GONE, View.VISIBLE hoặc View.INVISIBLE
bkurzius
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.