Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove top margin from BrowseFragment in Android TV

How can I remove blank space, as shown in dotted box in below image from BrowseFragment. I managed to remove search button and title. Although, I also want to remove blank space and move video row at top of screen.

Is there any way to do this?

I tried setting following in my AppTheme, but I doubt it helps:

    <item name="browseRowsMarginTop">0dp</item>
    <item name="browsePaddingTop">0dp</item>

enter image description here

like image 743
uniruddh Avatar asked Oct 27 '16 09:10

uniruddh


2 Answers

You can do this using it's dimens.xml which is provided in v17 Lean Back library.

Follow the steps below first.

  1. Go to your sdk -> extras -> android -> support -> v17 -> leanback -> res -> values.

  2. From their copy dimens.xml file into your current leanback project values folder.

  3. Now you have the dimens.xml file inside your project values folder.

  4. Open that file and find below dimen.

Default value may be 167dp given.

<dimen name="lb_browse_rows_margin_top">167dp</dimen>

So change it to around 30dp or as per your need.

<dimen name="lb_browse_rows_margin_top">30dp</dimen>

You will get the rows up in Browse Fragment.

like image 148
Jay Rathod RJ Avatar answered Oct 05 '22 21:10

Jay Rathod RJ


If you need to remove the header margin in only the fragment instead of globally overwrite the BrowseFragment:

    @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = super.onCreateView(inflater, container, savedInstanceState);
    FrameLayout containerDock = (FrameLayout) view.findViewById(R.id.browse_container_dock);
    FrameLayout.MarginLayoutParams params = (FrameLayout.MarginLayoutParams) containerDock.getLayoutParams();
    Resources resources = inflater.getContext().getResources();
    int newHeaderMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 30, resources.getDisplayMetrics());
    int offsetToZero = -resources.getDimensionPixelSize(R.dimen.lb_browse_rows_margin_top);
    params.topMargin = offsetToZero+newHeaderMargin;
    containerDock.setLayoutParams(params);
    return view;
}
like image 29
IanZ Avatar answered Oct 05 '22 22:10

IanZ