認為我在導航欄上有 4 個按鈕。第一個按鈕包含一些資料或專案,其他按鈕也包含一些資料或專案。
注意:同一 xml 檔案下的所有四個按鈕。
我希望如果我單擊第一個按鈕,它將向我顯示第一個按鈕資料或專案,同時它會隱藏其他三個按鈕資料或專案。我想對所有按鈕使用相同的方法。
我該怎么做,請幫助我。
uj5u.com熱心網友回復:
您可以通過使 onClick 中的所有其他按鈕可見性消失來實作這一點,如下所示:
如果您在活動中
override fun onCreate(savedInstanceState: Bundle?) { val b1 = findViewById(R.id.button1) val b2 = findViewById(R.id.button2) val b3 = findViewById(R.id.button3) val b4 = findViewById(R.id.button4) b1.setOnClickListener { b1.visibility = View.VISIBLE b2.visibility = View.GONE b3.visibility = View.GONE b4.visibility = View.GONE } b2.setOnClickListener { b1.visibility = View.GONE b2.visibility = View.VISIBLE b3.visibility = View.GONE b4.visibility = View.GONE } b3.setOnClickListener { b1.visibility = View.GONE b2.visibility = View.GONE b3.visibility = View.VISIBLE b4.visibility = View.GONE } b4.setOnClickListener { b1.visibility = View.GONE b2.visibility = View.GONE b3.visibility = View.GONE b4.visibility = View.VISIBLE } }如果你在片段
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) val b1 = view.findViewById(R.id.button1) val b2 = view.findViewById(R.id.button2) val b3 = view.findViewById(R.id.button3) val b4 = view.findViewById(R.id.button4) b1.setOnClickListener { b1.visibility = View.VISIBLE b2.visibility = View.GONE b3.visibility = View.GONE b4.visibility = View.GONE } b2.setOnClickListener { b1.visibility = View.GONE b2.visibility = View.VISIBLE b3.visibility = View.GONE b4.visibility = View.GONE } b3.setOnClickListener { b1.visibility = View.GONE b2.visibility = View.GONE b3.visibility = View.VISIBLE b4.visibility = View.GONE } b4.setOnClickListener { b1.visibility = View.GONE b2.visibility = View.GONE b3.visibility = View.GONE b4.visibility = View.VISIBLE } }
在此示例中,當您按下一個按鈕時,他將可見,而所有其他按鈕將從 UI 中消失。
你可以用 INVISIBLE 代替 GONE,不同的是,在 GONE 中,視圖不會在螢屏上“捕捉”空間,而 INVISIBLE 會,只是對用戶不可見(有關更多資訊,請閱讀此內容)
uj5u.com熱心網友回復:
按鈕具有不同的可見性,如果您想以編程方式使按鈕不可見且不可點擊,則應使用:
Button button;
button.setVisibility(View.GONE);
如果你不想看到你的按鈕,但你想要一個 onClick 而不是使用:
Button button;
button.setVisibility(View.INVISIBLE);
uj5u.com熱心網友回復:
當您想隱藏其他三個按鈕時,您可以使用切換案例,您可以在其中單擊按鈕并單擊一個按鈕,您可以隱藏所有其他按鈕。
Button b1 = (Button) findViewById(R.id.button1);
Button b2 = (Button) findViewById(R.id.button2);
Button b3 = (Button) findViewById(R.id.button3);
Button b4 = (Button) findViewById(R.id.button4);
b1.setOnClickListener(this)
b2.setOnClickListener(this)
b3.setOnClickListener(this)
b4.setOnClickListener(this)
當您定義 onclick 方法時,您將獲得單擊視圖的 id。
public void onClick(View v) {
// Perform action on click
switch(v.getId()) {
case R.id.button1:
b1.setVisibility(View.VISIBLE);
b2.setVisibility(View.GONE);
b3.setVisibility(View.GONE);
b4.setVisibility(View.GONE);
break;
case R.id.button2:
b1.setVisibility(View.GONE);
b2.setVisibility(View.VISIBLE);
b3.setVisibility(View.GONE);
b4.setVisibility(View.GONE);
break;
case R.id.button3:
b1.setVisibility(View.GONE);
b2.setVisibility(View.GONE);
b3.setVisibility(View.VISIBLE);
b4.setVisibility(View.GONE);
break;
case R.id.button1:
b1.setVisibility(View.GONE);
b2.setVisibility(View.GONE);
b3.setVisibility(View.GONE);
b4.setVisibility(View.VISIBLE);
break;
}
}
uj5u.com熱心網友回復:
因為您想隱藏資料/專案而不是按鈕。如果您直接隱藏按鈕。你不能點擊那個。假設如果您單擊 button1 并且它隱藏了其他按鈕。你不能點擊button2。您必須將所有資料放在可以隱藏的子布局中。
Button b1 = (Button) findViewById(R.id.button1);
Button b2 = (Button) findViewById(R.id.button2);
Button b3 = (Button) findViewById(R.id.button3);
Button b4 = (Button) findViewById(R.id.button4);
RelativeLayout r1 = (RelativeLayout) findViewById(R.id.buttonlayout1);
RelativeLayout r2 = (RelativeLayout) findViewById(R.id.buttonlayout2);
RelativeLayout r3 = (RelativeLayout) findViewById(R.id.buttonlayout3);
RelativeLayout r4 = (RelativeLayout) findViewById(R.id.buttonlayout4);
b1.setOnClickListener(this)
b2.setOnClickListener(this)
b3.setOnClickListener(this)
b4.setOnClickListener(this)
在 onClick 方法中隱藏/顯示視圖
public void onClick(View v) {
// Perform action on click
switch(v.getId()) {
case R.id.button1:
r1.setVisibility(View.VISIBLE);
r2.setVisibility(View.GONE);
r3.setVisibility(View.GONE);
r4.setVisibility(View.GONE);
break;
case R.id.button2:
r1.setVisibility(View.GONE);
r2.setVisibility(View.VISIBLE);
r3.setVisibility(View.GONE);
r4.setVisibility(View.GONE);
break;
case R.id.button3:
r1.setVisibility(View.GONE);
r2.setVisibility(View.GONE);
r3.setVisibility(View.VISIBLE);
r4.setVisibility(View.GONE);
break;
case R.id.button4:
r1.setVisibility(View.GONE);
r2.setVisibility(View.GONE);
r3.setVisibility(View.GONE);
r4.setVisibility(View.VISIBLE);
break;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/416859.html
標籤:
