How to change ExpandableListView group indicator position?

前端 未结 3 1775
执念已碎
执念已碎 2021-02-04 14:28

I want to change the ExpandableListView group indicator to right with padding.

I used custom adapter to load data to ExpandableListV

3条回答
  •  刺人心
    刺人心 (楼主)
    2021-02-04 14:55

    setIndicatorBounds(int, int) does not work properly for Android 4.3. They introduced a new method setIndicatorBoundsRelative(int, int) which works ok for 4.3.

    public int GetPixelFromDips(float pixels) {
        // Get the screen's density scale 
        final float scale = getResources().getDisplayMetrics().density;
        // Convert the dps to pixels, based on density scale
        return (int) (pixels * scale + 0.5f);
    }
    
    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        int width = metrics.widthPixels; 
        if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) {
            explvList.setIndicatorBounds(width-GetPixelFromDips(35), width-GetPixelFromDips(5));
        } else { 
            explvList.setIndicatorBoundsRelative(width-GetPixelFromDips(35), width-GetPixelFromDips(5));
        }
    }
    

提交回复
热议问题