Android渲染问题Marshmallow 6.0

时间:2016-03-09 07:46:18

标签: android android-6.0-marshmallow

使用Marshmallow 6.0手机Moto G3时似乎存在一些渲染问题。使用Lollipop它可以正常工作。

我在清单

中使用这些设置
android:minSdkVersion="14"
android:targetSdkVersion="21"

使用设置为API 23的Android演播室预览屏幕进行调试时,我无法找到任何渲染问题。

任何想法如何解决这个问题?

这是有问题的布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="330dp"
android:minHeight="300dp"
android:background="@color/agrey"
android:gravity="center" >

<EditText
    android:id="@+id/etNameny"
    android:layout_width="180dp"
    android:layout_height="40dp"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="45dp"
    android:background="@drawable/myborderlist"
    android:ems="5"

    android:maxLength="10"
    android:paddingLeft="5dp"
    android:singleLine="true"
    android:textColor="@color/black"
    android:textSize="25dp" />

<Button
    android:id="@+id/etDate1ny"
    android:layout_width="180dp"
    android:layout_height="40dp"
    android:background="@drawable/myborderlist"
    android:editable="false"
    android:ems="5"
    android:inputType="date|none"
    android:maxLength="10"
    android:onClick="setDate"
    android:paddingLeft="5dp"
    android:singleLine="true"
    android:textAlignment="center"
    android:textColor="@color/black"
    android:textSize="25dp"
    android:layout_above="@+id/trName"
    android:layout_toRightOf="@+id/trName"
    android:layout_toEndOf="@+id/trName">
</Button>

<EditText

    android:id="@+id/inkl1ny"
    android:layout_width="180dp"
    android:layout_height="40dp"
    android:background="@drawable/myborderlist"
    android:ems="5"
    android:maxLength="10"
    android:paddingLeft="5dp"
    android:singleLine="true"
    android:textColor="@color/black"
    android:textSize="25dp"
    android:layout_below="@+id/momsprocent11ny"
    android:layout_alignLeft="@+id/momsprocent11ny"
    android:layout_alignStart="@+id/momsprocent11ny"
    android:inputType="numberDecimal" />

<EditText

    android:id="@+id/momsprocent11ny"
    android:layout_width="180dp"
    android:layout_height="40dp"
    android:layout_alignLeft="@+id/etNameny"
    android:layout_below="@+id/etNameny"
    android:background="@drawable/myborderlist"
    android:ems="5"

    android:inputType="numberDecimal"

    android:paddingLeft="5dp"
    android:singleLine="true"
    android:textColor="@color/black"
    android:textSize="25dp" />

<TextView
    android:id="@+id/trName"
    android:layout_width="170dp"
    android:layout_height="40dp"
    android:layout_alignLeft="@+id/bClear1"
    android:layout_toLeftOf="@+id/etNameny"
    android:maxLength="10"
    android:singleLine="false"
    android:text="@string/tbName"
    android:textColor="@color/black"
    android:textSize="15dp"
    android:layout_above="@+id/momsprocent11ny" />

<TextView
    android:id="@+id/trDateCopy"
    android:layout_width="170dp"
    android:layout_height="40dp"
    android:layout_alignBottom="@+id/momsprocent11ny"
    android:layout_alignLeft="@+id/trName"
    android:layout_toLeftOf="@+id/etDate1ny"
    android:maxLength="10"
    android:singleLine="true"
    android:text="@string/tbVatProcent"
    android:textColor="@color/black"
    android:textSize="14dp" />

<TextView
    android:id="@+id/tvAlv141"
    android:layout_width="150dp"
    android:layout_height="40dp"
    android:layout_above="@+id/bClear1"
    android:layout_toLeftOf="@+id/etDate1ny"
    android:maxLength="6"
    android:singleLine="true"
    android:text="@string/tbSum"
    android:textColor="@color/black"
    android:textSize="14dp"
    android:layout_alignLeft="@+id/trDateCopy" />



<Button
    android:id="@+id/bClear1"
    android:layout_width="90dp"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/inkl1ny"
    android:layout_marginBottom="5dp"
    android:layout_marginTop="36dp"
    android:background="@drawable/myborderlist"
    android:maxLength="6"
    android:text="@string/akCancel" />

<Button
    android:id="@+id/buttonMain"
    android:layout_width="90dp"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/bAdd1"
    android:layout_alignBottom="@+id/bAdd1"
    android:layout_marginBottom="5dp"
    android:layout_toRightOf="@+id/bClear1"
    android:background="@drawable/myborderlist"
    android:maxLength="6"
    android:text="@string/akClear" />

<Button
    android:id="@+id/bAdd1"
    android:layout_width="90dp"
    android:layout_height="wrap_content"
    android:background="@drawable/myborderlist"
    android:maxLength="6"
    android:text="@string/akAdd"
    android:layout_alignTop="@+id/bClear1"
    android:layout_toRightOf="@+id/buttonMain"
    android:layout_toEndOf="@+id/buttonMain" />


</RelativeLayout>

以下是Lollipop和Marshmallow之间的区别

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

将编译版本更改为23,将targetsdkversion更改为23

//base model class with sorting
class dm : public QAbstractTableModel{
    ...
    int rows; 
    int currow;
    //sort
    virtual void dosort(int column,Qt::SortOrder order){}
    void sort(int column, Qt::SortOrder order=Qt::AscendingOrder){
        if (rows>1) {
            beginResetModel();
            if (currow<0) currow=0;
            dosort(column,order);
            endResetModel();
            emit sorted(currow);
        }
    }
 }

//=================
// model for grid N
class dmN : public dm{
   ...
   //one data row   
   struct mNrow{
        int f_er;
        Qstring * f_name;
    ...
   };
   //data rows: vector with pointers to mNrow structures
   std::vector< mNrow * > mNrows;
public:
    // compare func for column 0
    struct fcmp0{bool operator()(mNrow * li,mNrow * lj){
    return   (QString::localeAwareCompare(*(li->f_name),*(lj->f_name))<0);
    }} f0;

    //compare func for column 1
    struct fcmp1{bool operator()(mNrow * li,mNrow * lj){
    return  ((li->f_er)<(lj->f_er));
    }} f1;

    //do sorting
    void dosort(int column,Qt::SortOrder order){
       //  !!!! this string I can't move to sort and have to copy to each dm
       //save row ptr
       mNrow * lrs=mNrows[currow];

       if (column==0) {std::sort(r.begin(),r.end(),f0);}
       else if (column==1) {std::sort(r.begin(),r.end(),f1);}

       //  !!!! this part I can't move to sort and have to copy to each dm
       if (order!=Qt::AscendingOrder) {
           int lj=(rows-1);
           mNrow * lst;
           for (int li=0;li<=( lj >> 1);li++){
             lst=mNrows[li];
             mNrows[li]=mNrows[lj-li];
             mNrows[lj-li]=lst;
           }
       }
       //goto saved row ptr
       currow=-1;
       int li=0;
       for(std::vector<mNrow *>::iterator it = mNrows.begin(); it != mNrows.end(); ++it) {
           if (*it==lrs) {currow=li;break;}
           li++;
       }
    }
}
// grid N
class dgN : public QTableView{
...
    dmN * dgNm;
}

希望这会对你有所帮助。

答案 1 :(得分:0)

似乎Marshmallow 6.0在渲染一些混乱的代码时遇到了一些问题,就像我在xml布局中那样。我改为线性布局并制作完成 布局更加严格和干净。

现在它有效。不要乱码,它会给渲染问题!