2013-01-14 8 views
8

Tôi có một linearlayout và cũng có một vài nút bên trong nó. Tôi muốn làm cho nó có thể nhìn thấy khi chạm và vô hình khi chạm vào nó một lần nữa.Ẩn và hiển thị linearlayout

Tôi có thể làm như thế nào ??

+2

Bạn có thể thực hiện việc đó bằng cách sử dụng .setVisibility. Nhưng làm thế nào người dùng sẽ biết nút đó là có trong khi nó sẽ là vô hình? –

Trả lời

0

Bạn nên sử dụng

Invisible -: mButton.setVisibility(View.INVISIBLE);

Vsible -: mButton.setVisibility(View.VISIBLE);

Đặt mã này trong onclick listner nút Với ​​kiểm tra nếu điều kiện.

2

thêm setOnTouchListener để LinearLayout có được sự kiện liên lạc như:

linearLayout.setOnTouchListener(new OnTouchListener(){ 
    public boolean onTouch(View v, MotionEvent event){ 

    if (event.getAction() == MotionEvent.ACTION_DOWN) { 

     // show-hide view here 

     return true; 
     } 

    if (event.getAction() == MotionEvent.ACTION_UP) { 

     // show-hide view here 

     return true; 
     } 

    return false; 
    } 
}); 

để làm Xem thể nhìn thấy sử dụng yourview.setVisibility(View.VISIBLE) và vô hình sử dụng yourview.setVisibility(View.INVISIBLE)

+0

Tôi không hiểu về yourview.setVisibility (View.VISIBLE) và yourview.setVisibility (View.INVISIBLE) .có thể bạn giải thích –

+0

@KokoKrunch: yourview có nghĩa là quan điểm của bạn (như linarlayout, nút, textviews, ...) mà bạn muốn hiển thị/ẩn ví dụ 'linarlayout.setVisibility (View.INVISIBLE);' hoặc linarlayout.setVisibility (View.VISIBLE); ' –

+0

tôi có cần phải đặt tất cả các nút được đặt trong linearlayout hoặc tôi chỉ cần đặt chỉ linearlayout tại' show -hide view ' –

3

Thêm một boolean trên mã của bạn

boolean flag = false; 

sau đó thêm android: có thể nhấp = true trên bố cục tuyến tính của bạn trên xml

sau đó sử dụng mã này để tham khảo

your_linear_layout = new OnClickListener(){ 
    @Override 
    public void onClick(View v) { 
     if (flag){ 
     // means true 
     your_linear_layout.setVisibility(View.INVISIBLE); 
     flag = false; 
     } 
     else{ 
     your_linear_layout.setVisibility(View.VISIBLE) 
     flag = true; 
     } 

    } 

}; 

havent cố này chưa nhưng điều này nên làm việc ..

Cheers

+0

Sử dụng view.isShown() hoặc getVisibility() và bạn sẽ không cần Boolean đó. – RobGThai

+0

@RobGThai cảm ơn mẹo. Trên thực tế nó trên thực hiện riêng của mình .. – Androyds

20
LinearLayout one = (LinearLayout) findViewById(R.id.one); 
one.setVisibility(View.GONE); 

tôi đề nghị bạn nên sử dụng GONE insteady của INVISIBLE trong sự kiện onclick vì với View.GONE vị trí cho bố cục sẽ không hiển thị và ứng dụng sẽ không có vẻ không sử dụng trong đó giống như số View.INVISIBLE sẽ để khoảng cách dành cho bố cục

+0

Cảm ơn! Làm việc như người ở. Sau đó, tôi đã sử dụng 'View.VISIBLE' để làm cho tôi xuất hiện trở lại. – Joe