解决Android中的透支问题

时间:2016-05-12 08:29:45

标签: android android-layout android-fragments

我的应用程序中存在大量的透支问题,最糟糕的部分是它的整个窗口甚至我的工具栏都受到影响,我已经将我的布局剪裁到尽可能低的层次结构我可以想出但无济于事,这是截图我的应用enter image description here

我有一项活动,其中包含一个带有recyclerview的片段 这是我的recyclerview适配器布局:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:id="@+id/parentHolder"
android:background="@null"
android:layout_height="80dp">





            <ImageView
                android:layout_width="60dp"
                android:id="@+id/receiptImage"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:layout_gravity="center_vertical"
                android:layout_height="60dp"
               />

            <LinearLayout
                android:layout_width="wrap_content"
                android:orientation="vertical"
                android:gravity="center"
                android:layout_gravity="center"
                android:layout_weight="2"

                android:layout_height="wrap_content"
                >

                <TextView
                    android:id="@+id/merchantName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textColor="@android:color/black"
                    android:layout_gravity="center_vertical"
                    android:ellipsize="end"
                    android:singleLine="true"
                    android:textSize = "16sp"
                    android:textStyle="bold"
                    android:text="Merchant Name"
                   />

                <TextView
                    android:id="@+id/receiptCategory"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:ellipsize="end"
                    android:singleLine="true"
                    android:textSize = "13sp"
                    android:text="Food"

                   />

                <TextView

                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:ellipsize="end"
                    android:singleLine="true"
                    android:id="@+id/date"
                    android:layout_weight="1"
                    android:textSize = "12sp"
                    android:text="12 April, 2016"
                  />



            </LinearLayout>




            <LinearLayout
                android:layout_width="wrap_content"
                android:orientation="horizontal"
                android:layout_weight="1"
                android:layout_height="match_parent">




                <TextView
                    android:id="@+id/price"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:layout_gravity="center"
                    android:ellipsize="end"
                    android:singleLine="true"
                    android:layout_weight="0.5"
                    android:textColor="@color/accent"
                    android:textStyle="italic|bold"
                    android:text="$ 12.900"
                    android:textSize = "16sp"
                    />


                <com.rey.material.widget.CheckBox
                    android:layout_width="wrap_content"
                    android:layout_gravity="center"
                    android:enabled="false"
                    android:layout_weight="0"
                    android:id="@+id/checkbox"
                    android:layout_height="wrap_content" />



            </LinearLayout>


        </LinearLayout>

片段布局:

<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/receipts_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

我的活动布局:

<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:fitsSystemWindows="true"
android:gravity="center"
android:orientation="vertical"
android:background="@null"
android:layout_height="match_parent"
tools:context=".ManagerActivity">



    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        >

        <LinearLayout
            android:layout_width="wrap_content"
            android:orientation="vertical"
            android:gravity="center"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Total Expenses"
                android:textColor = "@color/white"
                android:textStyle="bold"
                android:textSize="16sp"
                android:id="@+id/toolbar_title" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="0.0"
                android:textColor = "@color/white"
                style="@android:style/TextAppearance.DeviceDefault.Small"
                android:id="@+id/total_expenses" />


            </LinearLayout>

    </android.support.v7.widget.Toolbar>


    <FrameLayout
        android:id="@+id/drawer_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/toolbar">

    </FrameLayout>





  </LinearLayout >

最后这是我的主题我感觉它与此有关但遗憾的是我对主题不是很熟悉也许这里有人可以指出问题

   <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>

    <item name="colorAccent">@color/accent</item>

    <!-- MaterialDrawer specific values -->
    <item name="material_drawer_background">@color/material_drawer_dark_background</item>
    <item name="material_drawer_primary_text">@color/material_drawer_dark_primary_text</item>
    <item name="material_drawer_secondary_text">@color/material_drawer_dark_secondary_text
    </item>
    <item name="material_drawer_hint_text">@color/material_drawer_dark_hint_text</item>
    <item name="material_drawer_divider">@color/material_drawer_dark_divider</item>
    <item name="material_drawer_selected">@color/material_drawer_dark_selected</item>
    <item name="material_drawer_selected_text">@color/royal_blue</item>
    <item name="material_drawer_header_selection_text">
        @color/material_drawer_dark_primary_text
    </item>

    <!-- CAB :D -->
    <item name="windowActionModeOverlay">true</item>
</style>

2 个答案:

答案 0 :(得分:0)

如果你在布局背景属性上设置@null,它就不会绘制它的背景。所以我也想知道为什么透支问题是严重的。

您可以通过在主题文件中添加此代码来删除主题背景:

<item name="android:windowBackground">@null</item>

它对overdraw进行优化。根据这个:enter link description here

答案 1 :(得分:0)

我终于修复了透支和它的完美,我不得不对我的适配器进行一些更改,从可扩展适配器到普通适配器和其他附加修正,但即使在那之后我的应用仍然表现不佳,那么我再次看了我的适配器并注意到每个适配器我正在创建一个typeface对象并为我的适配器分配一个新的font,这需要一段合理的时间和CPU强度因此滞后所以我刚删除了typeface,我的应用又回到了顶部,这是我当前GPU我应用的xauth图纸