0

Мне нужен ViewPager внутри DialogFragment с закругленными углами. Я пытаюсь создать собственный ViewPager. Здесь мой метод onDraw:Rounded DialogFrament

int mArcRadius = 2 * Math.round(context.getResources().getDimension(R.dimen.round_radius)); 
     Path mCornerPath = new Path(); 
     Paint mPaint = new Paint(); 
     mPaint.setAntiAlias(true); 
     mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); 
     mCornerPath.moveTo(0,canvas.getHeight()); 
     RectF rectLeftCorner = new RectF(0, canvas.getHeight() - mArcRadius, mArcRadius, canvas.getHeight()); 
     mCornerPath.arcTo(rectLeftCorner, 90, 90); 
     RectF rectRightCorner = new RectF(canvas.getWidth() - mArcRadius, canvas.getHeight() - mArcRadius, canvas.getWidth(), canvas.getHeight()); 
     mCornerPath.moveTo(canvas.getWidth(), canvas.getHeight()); 
     mCornerPath.arcTo(rectRightCorner, 0, 90); 
     mCornerPath.close(); 
     canvas.drawPath(mCornerPath, mPaint); 

Но это не работает. Фрагменты ViewPage, расположенные над ViewPager. Затем я попытаюсь создать собственный формат фрагмента аналогичным образом. Он работает, если я не сдвигаю фрагменты. В противном случае это получается enter image description here

Как решить мою проблему?

ответ

1

Используйте этот метод, как я использовал:

фона Drawable для вашего диалога необходимо округлить:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape 
      android:shape="rectangle"> 
      <solid android:color="@color/transparent_black" /> 
      <corners android:radius="@dimen/border_radius"/> 
     </shape> 
    </item> 
    <item 
     android:left="@dimen/border_width" 
     android:right="@dimen/border_width" 
     android:top="@dimen/border_width" 
     android:bottom="@dimen/border_width" > 

     <shape android:shape="rectangle"> 
      <solid android:color="@color/blue" /> 
      <corners android:radius="@dimen/border_radius"/> 
     </shape> 
    </item>  
</layer-list> 

расположение диалога, как вам нужно в XML (сделать самостоятельно).

код Java:

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this); 

      View child = getLayoutInflater().inflate(R.layout.dialog_custom_tom, null); 
      alertDialogBuilder.setView(child); 

      AlertDialog alertDialog = alertDialogBuilder.create(); 

      alertDialog.show(); 

alertDialogBuilder.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); 
+0

я уже пытаюсь установить форму в качестве фона. это не работа. потому что фрагменты viewpager над диалоговым корневым расположением диалога – Tiberal