如何从BrowseFragment中删除页眉?

8
我正在开发一个Android TV应用,并使用Leanback库。我想自定义应用程序布局的"BrowseFragment"。我想移除头视图,只显示卡片列表"rows"。是否可以实现这个目标,或者有其他的解决方案?我想移除那个

你是指显示在行上方的标题吗?你能更新一下截图吗? - Jay Rathod
我想删除左侧的蓝色区域,该区域包含行的标题。 - Billel Boumessaidia
你的意思是需要移除整个左边的那一部分吗? - Jay Rathod
4个回答

11

上述调用实际上需要在OnCreate方法中而不是OnActivityCreated方法中。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHeadersState(HEADERS_DISABLED);
}

4
您需要这样设置HeaderState:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    setHeadersState(HEADERS_DISABLED); // Add this line
}

5
谢谢您的回答,但如果我这样做的话,行也会被禁用!我想要删除左侧的蓝色。 - Billel Boumessaidia
1
尝试 HEADERS_HIDDEN - Sofiane Daoud
3
可以工作,但标题和行之间的事件仍然存在(只有在加载时才隐藏标题)。 - Billel Boumessaidia
1
你找到解决方案了吗? - user3701188
@BillelBmsd,ebr的回答对我有用。当我调用setHeadersState(HEADERS_DISABLED)时,它禁用了标题,但行仍然存在。奇怪的是,在谷歌提供的示例应用程序中,他们在onActivityCreated()中调用此函数,不确定是否对他们起作用。 - AndroidDev
我在OnActivityCreated()中尝试使用HEADERS_DISABLED和HEADERS_HIDDEN,但是行也被禁用了...你能给我一个解决方案吗? - undefined

1

有两个选项:

/** The headers fragment is enabled and hidden by default. */

HEADERS_HIDDEN

/** The headers fragment is disabled and will never be shown. */

HEADERS_DISABLED

在OnCreate中,您需要设置Header:

    setHeadersState(HEADERS_DISABLED); //To Diable the Header

    setHeadersState(HEADERS_HIDDEN); //To Hide the Header

1

当您更改setHeaderState(HEADERS_DISABLED)时,行也会被禁用和隐藏。 一种方法是设置setHeaderPresenterSelector()

private void setupUIElements() {

    setHeadersState(HEADERS_DISABLED);

    setHeaderPresenterSelector(new PresenterSelector() {
        @Override
        public Presenter getPresenter(Object item) {
            return new CustomPresenter();
        }
    });
}

你只需要重写getPresenter()方法,并返回你需要实现的新定制化Presenter。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接