隐藏和显示小部件的正确方法?

时间:2018-07-25 15:16:54

标签: android android-studio widget

在我的应用中,我需要在特定时间显示和隐藏buttontextview之类的小部件。 以及我的工作方式如下:

private void hideviews() {
    image.setVisibility(View.GONE); ///ImageView
    title1.setVisibility(View.GONE);///TextView
    title2.setVisibility(View.GONE);///TextView
    title3.setVisibility(View.GONE);///TextView
    title4.setVisibility(View.GONE);///TextView
    title5.setVisibility(View.GONE);///TextView
}

private void showviews() {
    image.setVisibility(View.VISIBLE);
    title1.setVisibility(View.VISIBLE);///TextView
    title2.setVisibility(View.VISIBLE);///TextView
    title3.setVisibility(View.VISIBLE);///TextView
    title4.setVisibility(View.VISIBLE);///TextView
    title5.setVisibility(View.VISIBLE);///TextView

} 

我认为这不是正确的方法。 因为我不知道会有多少个小部件。 非常感谢您提供有关如何正确显示小部件的指导。

4 个答案:

答案 0 :(得分:0)

由于您不知道将附加多少测试视图,因此我认为最好的方法是:

  • 获取父视图组(包含所有 textviews),
  • 使用@RequestMapping(value = {"/", "/welcome"}, method = RequestMethod.GET) public String welcome(Model model) { ArrayList<Event> events = seeEvents.getAllEvents(); System.out.println(events); model.addAttribute("events", events); return "welcome"; } 遍历所有孩子,
  • 验证该对象是否为TextView / ImageView的实例,如果是,则根据您的逻辑设置其可见性

答案 1 :(得分:0)

不是单独隐藏每个小部件,而是隐藏根布局。

RelativeLayout rootLayout;

rootLayout= (RelativeLayout) findViewById(R.id.root_layout);

并使用类似的方法来控制可见性。

public void setLayoutInvisible() {
    if (rootLayout.getVisibility() == View.VISIBLE) {
        rootLayout.setVisibility(View.GONE);
    }
}
public void setLayoutVisible() {
    if (rootLayout.getVisibility() == View.GONE) {
        rootLayout.setVisibility(View.VISIBLE);
    }
}

答案 2 :(得分:0)

对要显示/隐藏的所有视图进行排列:

View[] views = {image, title1, title2, title3, title4, title5};

然后使用它来隐藏它们:

for (View view : views) {
    view.setVisibility(View.GONE);
}

并使用它来显示它们:

    for (View view : views) {
        view.setVisibility(View.VISIBLE);
    }

尽管您可以在一个过程中结合两个代码部分:

void fixViews(int state) {
        for (View view : views) {
            view.setVisibility(state);
        }
}

并命名为:

fixViews(View.GONE);fixViews(View.VISIBLE);

答案 3 :(得分:0)

获取对根布局的引用,遍历子级,检查特定索引处的视图是否是EditText的实例(或不需要隐藏的视图),如果不隐藏的话

from google.cloud import storage
import time
import os
start_time = time.time()

download_command = "gsutil -m cp gs://<bucket>/* . "
os.system(download_command)
elapsed_time = time.time() - start_time
print(elapsed_time)