小编San*_*Sur的帖子

Android Studio - XML编辑器自动完成功能不支持库

我刚开始使用新的android.support.design库.当使用XML编辑器中的任何小部件时,我停止获取XML自动完成建议!

例如,

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/header_root"
    android:layout_width="match_parent"
    android:layout_height="200dp">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/primary_dark" />

    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|right"
        android:src="@drawable/ic_action_add"
        android:layout_marginLeft="16dp"
        android:layout_marginRight="16dp"
        android:layout_marginTop="56dp"
        app:fabSize="normal"
        app:layout_anchor="@id/header_root"
        app:layout_anchorGravity="bottom|right|end" />

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

没有任何标签会显示自动完成弹出窗口,就像我开始输入"android:i"时没有出现弹出窗口,我得到的唯一建议如下图所示.

在此输入图像描述

我已经尝试清理我的项目,重新启动电脑,重新启动Android Studio ..没有任何工作!

android autocomplete android-studio

65
推荐指数
10
解决办法
4万
查看次数

如何在Android API中使用矢量drawables 21?

我正在开发一个Android项目,我选择<vector>显示图标,因为它具有适应性和动态性,但是,我只能在运行Android的设备上运行此应用程序,该设备具有API 21或更高版本.我的问题是如何<vector>在较低的Android版本即API 14或类型上使用.谢谢!

<!-- drawable/ic_android_debug_bridge.xmlxml -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="48dp"
android:width="48dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path android:fillColor="@color/primaryColorDark"
    android:pathData="M15,9A1,1 0 0,1 14,8A1,1 0 0,1 15,7A1,1 0 0,1 16,8A1,1 `0 0,1 15,9M9,9A1,1 0 0,1 8,8A1,1 0 0,1 9,7A1,1 0 0,1 10,8A1,1 0 0,1 9,9M16.12,4.37L18.22,2.27L17.4,1.44L15.09,3.75C14.16,3.28 13.11,3 12,3C10.88,3 9.84,3.28 8.91,3.75L6.6,1.44L5.78,2.27L7.88,4.37C6.14,5.64 5,7.68 5,10V11H19V10C19,7.68 17.86,5.64 16.12,4.37M5,16C5,19.86 8.13,23 12,23A7,7 0 0,0 19,16V12H5V16Z" /></vector>`
Run Code Online (Sandbox Code Playgroud)

java android vector android-layout

63
推荐指数
7
解决办法
6万
查看次数

发射和发射源与 LiveData 有什么区别?(如在实时用例中)

emit接受data类而emitSource接受LiveData<T>( T -> data)。考虑以下示例:-我有两种类型的调用:-

suspend fun getData(): Data // returns directly data
Run Code Online (Sandbox Code Playgroud)

而另一个;

suspend fun getData(): LiveData<Data> // returns live data instead
Run Code Online (Sandbox Code Playgroud)

对于第一种情况,我可以使用:-

liveData {
   emit(LOADING)
   emit(getData())
}
Run Code Online (Sandbox Code Playgroud)

我的问题:使用上述方法可以解决我的问题,为什么我们还需要emitSource(liveData)

任何使用该emitSource方法的好用例都会清楚地表明!

android android-livedata android-architecture-components android-jetpack kotlin-coroutines

17
推荐指数
4
解决办法
5963
查看次数

如何将List <Object>转换为PagedList <Object>,反之亦然?

PagedList<Object>用于Android的酷分页库.要使问题尽可能小:如果我有一个字符串列表,如

  List<String> stringList; // it consists of 200 strings
Run Code Online (Sandbox Code Playgroud)

我想转换 stringListPagedList<String>类似的类型

  PagedList<String> pagedStringList;
Run Code Online (Sandbox Code Playgroud)

而且,如果我有一个PagedList<Object>如何将其转换为List<Object>?我经历了这个以供参考

如果我尝试相反的方式....

我怎么能转换List<Object>DataSource.Factory<Integer, Object>..所以间接我可以把它转换成PagedList<>

DataSource.Factory<Integer, Object>我可以转换为PagedList<>但我怎么能转换listPagedList<>

android rx-java2 android-livedata android-architecture-components android-jetpack

15
推荐指数
1
解决办法
4203
查看次数

挂起函数“ callGetApi”只能从协程或其他挂起函数中调用

我正在从onCreate(...)调用暂停的函数

override fun onCreate(savedInstanceState: Bundle?) {
    ...
    ...
    callGetApi()
}
Run Code Online (Sandbox Code Playgroud)

暂停功能为:

suspend fun callGetApi() {....}
Run Code Online (Sandbox Code Playgroud)

但是错误显示挂起函数“ callGetApi”应仅从协程或另一个挂起函数调用

android coroutine kotlin kotlinx.coroutines

13
推荐指数
3
解决办法
5629
查看次数

java.lang.ClassCastException:android.support.v7.widget.ActivityChooserView $ InnerLayout无法强制转换为android.support.v7.widget.LinearLayoutCompat

从LinearLayout切换到ConstraintLayout会抛出此错误

java.lang.ClassCastException: android.support.v7.widget.ActivityChooserView$InnerLayout cannot be cast to android.support.v7.widget.LinearLayoutCompat                                                                                                                                             
Run Code Online (Sandbox Code Playgroud)

当我尝试给onCreateOptionsMenu()我的片段中的菜单充气时发生错误.

我膨胀的菜单: -

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">   
    <item
        android:id="@+id/action_share"
        app:showAsAction="always"
        android:orderInCategory="101"
        android:icon="@android:drawable/ic_menu_share"
        android:title="@string/action_share"
        app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
        />
</menu>
Run Code Online (Sandbox Code Playgroud)

我的 onCreateOptionsMenu(..)

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {     
    inflater.inflate(R.menu.customerdetail, menu);      
    MenuItem menuItem = menu.findItem(R.id.action_share);
    mShareActionProvider = (ShareActionProvider) 
    MenuItemCompat.getActionProvider(menuItem);         
 // If i comment out this whole part everything is fine !!
 }
Run Code Online (Sandbox Code Playgroud)

编辑: - 日志的ScreenShot: -

在此输入图像描述

更新: - 添加app:actionProviderClass="android.support.v7.widget.ShareActionProvider"项目会导致错误.

正如ShaneCoder建议下降到27.0.2/更改以LinearLayout消除错误但我想知道

为什么27.1.0在运行Class时会在运行时抛出这样的错误 …

android classcastexception android-constraintlayout

9
推荐指数
1
解决办法
1745
查看次数

以全长的方式截取RecyclerView的屏幕截图..每个项目都有一个列表

我正在使用具有动态大小列表的recyclerView ...当我使用此方法截取每个recyclerView项目的屏幕截图时...它截取屏幕截图,但每个项目仅包含一个列表项目..即使列表项目size > 1.

public static Bitmap getRecyclerViewScreenshot(RecyclerView view) {
    int size = view.getAdapter().getItemCount();
    RecyclerView.ViewHolder holder = view.getAdapter().createViewHolder(view, 0);
    view.getAdapter().onBindViewHolder(holder, 0);
    ArrayList<Bitmap> bitmaps=new ArrayList<>();
    holder.itemView.measure(View.MeasureSpec.makeMeasureSpec(view.getWidth(),
            View.MeasureSpec.EXACTLY),
            View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
    holder.itemView.layout(0, 0, holder.itemView.getMeasuredWidth(), holder.itemView.getMeasuredHeight());
    Bitmap bigBitmap = Bitmap.createBitmap(view.getMeasuredWidth(), holder.itemView.getMeasuredHeight() * size,
            Bitmap.Config.ARGB_8888);
    Canvas bigCanvas = new Canvas(bigBitmap);
    bigCanvas.drawColor(Color.WHITE);
    Paint paint = new Paint();
    int iHeight = 0;
    holder.itemView.setDrawingCacheEnabled(true);
    holder.itemView.buildDrawingCache();
    bigCanvas.drawBitmap(holder.itemView.getDrawingCache(), 0f, iHeight, paint);
    holder.itemView.setDrawingCacheEnabled(false);
    holder.itemView.destroyDrawingCache();
    iHeight += holder.itemView.getMeasuredHeight();
    for (int i = 1; i < size; i++) {
        view.getAdapter().onBindViewHolder(holder, i); …
Run Code Online (Sandbox Code Playgroud)

android listview android-recyclerview

8
推荐指数
2
解决办法
1048
查看次数

Android Room 使用动态表名获取数据

是否可以通过作为 afetch data传递?像这样的东西。table nameparameter

@Query("SELECT id, name from :tableName")
fun getData(tableName: String): List<RandomModel>
Run Code Online (Sandbox Code Playgroud)

database android kotlin android-room

8
推荐指数
1
解决办法
2981
查看次数

Android 房间数据库迁移运行多次

我正在使用房间数据库来创建本地存储,我正在尝试迁移数据库,并且在多次调用迁移函数时遇到问题。

我在这里附上我的一段代码。

class DbInstance {
companion object {
    private var db: AppDatabase? = null
    fun getDbInstance(context: Context): AppDatabase {
        if (db == null)
            db = Room.databaseBuilder(
                context,
                AppDatabase::class.java, "mydb"
            )
                .addMigrations(MIGRATION_1_2, MIGRATION_2_3)
                .build()
        return db!!
    }

    private val MIGRATION_1_2 = object : Migration(1, 2) {
        override fun migrate(database: SupportSQLiteDatabase) {

        }
    }
    private val MIGRATION_2_3 = object : Migration(2, 3) {
        override fun migrate(database: SupportSQLiteDatabase) {
            println("------> called for MIGRATION_2_3")
            database.execSQL(
                "Alter table PaymentDB add column ui_name text"
            )
        } …
Run Code Online (Sandbox Code Playgroud)

database android kotlin android-room

5
推荐指数
1
解决办法
720
查看次数

Android:位图与 RGBA 之间的转换

我正在尝试编写一些方法来将 Android 位图转换为 RGBA 字节数组,然后再转换回位图。问题是我似乎没有达到公式,因为颜色总是返回错误。我尝试过几种不同的假设,但没有成功。

所以,这是我认为很好的从 Bitmap 转换为 RGBA 的方法:

public static byte[] bitmapToRgba(Bitmap bitmap) {
    int[] pixels = new int[bitmap.getWidth() * bitmap.getHeight()];
    byte[] bytes = new byte[pixels.length * 4];
    bitmap.getPixels(pixels, 0, bitmap.getWidth(), 0, 0, bitmap.getWidth(), bitmap.getHeight());
    int i = 0;
    for (int pixel : pixels) {
        // Get components assuming is ARGB
        int A = (pixel >> 24) & 0xff;
        int R = (pixel >> 16) & 0xff;
        int G = (pixel >> 8) & 0xff;
        int B …
Run Code Online (Sandbox Code Playgroud)

graphics android bitmap argb rgba

5
推荐指数
1
解决办法
3408
查看次数