java setenabled不好用,setEnabled(),setClickable()不起作用

我使用了FrameLayout,其中我使用了两个LinearLayouts。 第二个最初是不可见的,但是当我按下布局1上的按钮时,第二个布局变得可见并且与第一个布局重叠。 我想要的是当我的第二个布局出现时,第一个布局的元素不应该是可点击的(或启用的)。 为此,我尝试了setEnabled(false)和setClickable(false),但这两个都不起作用我没有得到什么问题。

代码如下TableLayout table; EditText edit; ScrollView scroll; Button btn_save; Button btn_layer_save; Button btn_cross; AlertDialog alert_dialog; LinearLayout layout_above; int primary_selected; RadioButton radio_geo; RadioButton radio_alumni; String geo = "no" ; String alumni = "no" ; int color; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); table = (TableLayout) findViewById(R.id.tableLayout1); edit = (EditText) findViewById(R.id.message_select_friends_edit_search); search_geo_name_list = new ArrayList(); search_id_list = new ArrayList(); scroll = (ScrollView) findViewById(R.id.register_scroll_view); btn_cross = (Button) findViewById(R.id.register_cross); btn_save = (Button) findViewById(R.id.register_save); btn_layer_save = (Button) findViewById(R.id.register_layer_save); btn_cross.setOnClickListener(this); btn_save.setOnClickListener(this); btn_layer_save.setOnClickListener(this); layout_above = (LinearLayout) findViewById(R.id.regsiter_layout_layer_above); createTableRows(name_list,id_list); } void createTableRows(ArrayList list_name , ArrayList list_id ) { /*-----ROWSOFTABLECREATEDDYN AMICALLY ------*/ } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.register_save: layout_above.setVisibility(LinearLayout.VISIBLE); btn_save.setVisibility(LinearLayout.INVISIBLE); scroll.setEnabled(false); edit.setEnabled(false); edit.setClickable(false); scroll.setClickable(false); break; case R.id.register_cross: Toast.makeText(this, "Cross Cancel", 1000).show(); Intent intent = new Intent(this, TestSave.class); startActivity(intent); finish(); break; case R.id.register_layer_save: selectedInfo(); break; } }`

将前布局的大小作为背景布局的大小,并将前布局的背景颜色设置为透明,因此背景布局是部分的

可见。 并将onClickListener设置为front layout,而onClick方法则不执行任何操作。

这个答案并不完全符合您的要求,但它是一个很好的选择。

希望能帮助到你

尝试使用setFocusable(False); 可能这应该对你有帮助

尝试与孩子一起工作而不是布局本身

LinearLayout l=(LinearLayout) findViewById(R.layout.layout2); int num=l.getChildCount(); for(int i=0;i

你可以使用递归来递归地禁用所有孩子的可点击属性 –

public static void enableDisableViewGroup(ViewGroup viewGroup, boolean enabled) { int childCount = viewGroup.getChildCount(); for (int i = 0; i < childCount; i++) { View view = viewGroup.getChildAt(i); view.setEnabled(enabled); if (view instanceof ViewGroup) { enableDisableViewGroup((ViewGroup) view, enabled); } else if (view instanceof ListView) { view.setEnabled(enabled); ListView listView = (ListView) view; int listChildCount = listView.getChildCount(); for (int j = 0; j < listChildCount; j++) { listView.getChildAt(j).setEnabled(enabled); } } } }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值