小编Lio*_*luz的帖子

jQuery使用fadeIn/Out更改div背景图像

我正在尝试在我创建的网站上创建淡入/淡出效果(编辑:网站网址已删除)

一切都很好,除非你点击调色板中的一种颜色,它取代图像没有任何效果.

这是我写的小脚本,它是在其中一种颜色上触发的.

function changeImage(newColor) {

    //var previousImage = $('#image-holder').css("background-image");

    $('#image-holder').css("background", "url('images/design-" + newColor + ".jpg')");
};
Run Code Online (Sandbox Code Playgroud)

我试过玩,$('#image-holder').fadeOut(1500)然后$('#image-holder').fadeIn(1500)它的行为很有趣......它使图像双重淡化.

$('#image-holder').css("background", "url('images/design-" + newColor + ".jpg')").fadeOut(function(){$(this).fadeIn()});
Run Code Online (Sandbox Code Playgroud)

我想要实现的是在彩色框上单击,当前背景图像将淡出,而新背景图像将淡入.

我知道如果我使用两个<img src="" />并切换它们的显示/可见性就更容易实现,但遗憾的是我无法改变HTML,所以我正在寻找基于jQuery的解决方案.

感谢帮助!

html javascript jquery

11
推荐指数
2
解决办法
5万
查看次数

android:support:fragments 保存的 Activity 越来越大导致 TransactionTooLargeException

我有一个控制多个片段的活动。默认片段是HomepageFragment. 当替换到不同的 Fragment 时,我总是确保堆栈保持平坦 - 这意味着只有HomepageFragment保持在堆栈中并在其顶部是当前 Fragment。例如:

  1. 活动开始于 HomepageFragment
  2. FragmentA需要替换 to - 一切都是好的原因HomepageFragment是最后一个 Fragment
  3. 现在堆栈是HomepageFragment->FragmentA
  4. FragmentB需要替换为- 首先弹出堆栈上的最后一个 Fragment ( fragmentA) 然后替换为FragmentB
  5. 现在堆栈是HomepageFragment->FragmentB

在生产中,我看到很多TransactionTooLargeException崩溃。

我曾经TooLargeTool跟踪问题的来源,我发现当我在活动中的片段之间切换时,其中有一个android:support:fragmentsSaveInstanceState变得越来越大(呈指数级),直到发生崩溃。

似乎即使从堆栈中弹出时,有关原始事务的一些数据也会继续保存。

按照此处的建议将其删除会导致 Activity 在被操作系统杀死后无法正确恢复。

我压平堆栈的方法有什么问题吗?有没有更好的方法?究竟保存在什么数据下android:support:fragments

注意:我没有为这些片段设置任何参数。此外,它们在其 saveInstanceState 包中保存了非常小的数据。

谢谢!

android android-fragments android-activity onsaveinstancestate transactiontoolargeexception

11
推荐指数
1
解决办法
886
查看次数

从URL获取相关图像和摘要

我不确定如何定义它,但基本上我想从给定的URL检索相关的图像和文本摘要.

例如,当用户将链接粘贴到Facebook上的共享框时,它会立即从文章本身和相关图像中获取文章标题和/或短文本块.它永远不会得到错误的图像,如网站的标识或文章本身周围的文字......

同样适用于Google+和其他社交网络或此类服务.

我开始假设我需要使用下面的代码阅读页面内容,如何确定哪个图像是相关的(来自文章正文)以及哪个文本是文章文本?

URL oracle = new URL("http://www.oracle.com/");
BufferedReader in = new BufferedReader(
    new InputStreamReader(oracle.openStream()));

String inputLine;
while ((inputLine = in.readLine()) != null)
    System.out.println(inputLine);

in.close();
Run Code Online (Sandbox Code Playgroud)

我当然不是在这里要求代码(除非某人有一个代码片段并且愿意分享)但更多的是如何处理这个...我从哪里开始?

任何帮助将不胜感激!

java android

10
推荐指数
1
解决办法
1798
查看次数

Tabs + ViewPager + FragmentStatePagerAdapter - 如何删除片段?

我正在使用"Tabs + Swipe"项目,我很难删除片段.

我正在做的步骤:

  1. 从数据库中删除选项卡
  2. 从FragmentStatePagerAdapter数据源中删除选项卡
  3. 从actionBar中删除选项卡.
  4. 使用Support FragmentManager删除片段.

问题: 执行删除后,由于某种原因,我仍然可以向右滚动并看到一个空片段.我不能选择它,它只是反弹回来.似乎片段没有被移除,而是从左侧将其位置更改为标签.

我的适配器:

public class SectionsPagerAdapter extends FragmentStatePagerAdapter {

        public SectionsPagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            Fragment fragment = new TabFragment();

            Bundle args = new Bundle();
            args.putInt(TabFragment.ARG_TAB_POSITION, position);
            fragment.setArguments(args);

            return fragment;
        }

        @Override
        public int getCount() {
            return tabsList.size();
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return tabsList.get(position).getTitle();
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            super.destroyItem(container, position, object);
            FragmentManager manager = ((Fragment)object).getFragmentManager(); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-fragmentactivity

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

应用程序升级后,某些第三方小部件会停止更新

我的应用程序托管用户安装的小部件,与启动器应用程序相同.

一旦我绑定小部件,一切正常.窗口小部件创建,自动更新,我可以单击以导航内部视图.

一切都工作正常,直到我从Play商店更新我的应用程序(或手动使用签名的APK).

更新后,小部件仍然显示但不再更新.一些小部件在我点击它们时起作用,但是视图被卡住并且永远不会更新,直到我重新创建小部件(获取新ID并绑定它).

我尝试使用强制更新

Intent intent = new Intent();
intent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
intent.setComponent(appWidgetInfo.provider);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[]
                {appWidgetId});
context.sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)

但这没有帮助......

我想尝试点击强制更新,但我找不到任何方法来获取小部件的RemoteViews(因为这不是我的小部件,我只是托管它).

RemoteViews views = 
      new RemoteViews(context.getPackageName(),R.layout.mywidget_layout);

Intent updateIntent = new Intent();
updateIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
updateIntent.putExtra(myWidgetProvider.WIDGET_IDS_KEY, ids);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
      context, 0, updateIntent, PendingIntent.FLAG_UPDATE_CURRENT);

views.setOnClickPendingIntent(R.id.view_container, pendingIntent);
Run Code Online (Sandbox Code Playgroud)

还实现了一个AppWidgetProvider监听小部件的ID更改(APPWIDGET_HOST_RESTORED),但它不会在我的应用程序更新时调用.

我的下一步是在应用程序更新后重新创建所有小部件,但我真的不愿意这样做.

非常感谢任何帮助!

android android-widget android-appwidget

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

Android Studio 3.2上的AndroidX - 运行应用时的VerifyError

将我的应用迁移到Android Studio 3.2上的AndroidX库.在调试中运行时,一切都按预期工作但如果我生成一个签名的APK,使用Proguard进行模糊处理 - 我收到此错误:

java.lang.VerifyError: Verifier rejected class d.a: androidx.preference.Preference d.a.a(androidx.fragment.app.k, int)
failed to verify: androidx.preference.Preference d.a.a(androidx.fragment.app.k, int): [0x8] ‘this’ argument ‘Reference:
androidx.fragment.app.k’ not instance of ‘Reference: 
androidx.preference.B’ (declaration of ‘d.a’ appears in base.apk)
Run Code Online (Sandbox Code Playgroud)

我试过排除所有AndroidX库:

-dontwarn androidx.**
-keep class androidx.** { *; }
-keep interface androidx.** { *; }
Run Code Online (Sandbox Code Playgroud)

但问题仍然存在,除非我基本上取消使用的混淆

-keep class com.myapp.package.** { *; }
Run Code Online (Sandbox Code Playgroud)

还尝试查看映射文件中的哪个类d.a,但它没有提示我问题的方向.

Jetifier已启用

android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?这有可能是androix.preference库的一个问题吗?

android android-studio android-proguard androidx r8

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

Android点击listItem检查错误复选框

我通过扩展SimpleCursorAdapter创建了一个自定义ListView.结果是IMAGE + CheckedTextView(文本+复选框).

当我长按一个项目时,一切正常 - 我得到了正确的ID和被点击的项目的详细信息.

当我尝试将项目标记为已选中但它检查错误的复选框时,会出现此问题.

例如:我的列表中有9个项目,排序为1-9.如果我点击listItem 1,则会检查第9行的复选框.如果我点击第4项,则会检查第6行上的复选框,如果我点击中间一行,则会进行检查.

显然,我在这里遗漏了一些东西:)请记住,当我长时间点击该行(contextMenu打开)时,一切都很好.

这是听众:

lv.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                CheckedTextView markedItem = (CheckedTextView) view.findViewById(R.id.btitle);

                if (!markedItem.isChecked()) {
                    markedItem.setChecked(true);
                } else {
                    markedItem.setChecked(false);
                }

            }
        });
Run Code Online (Sandbox Code Playgroud)

感谢任何帮助!

如果您需要我发布更多代码,请告诉我.

谢谢!

顺便说一句,如果我点击多个...... PARTY继续......没有明显的顺序......

编辑:适配器代码

public class ImageCursorAdapter extends SimpleCursorAdapter {

    private Cursor c;
    private Context context;

    private String url;
    private TextView bUrl;

    public ImageCursorAdapter(Context context, int layout, Cursor c,
            String[] from, int[] to) {
        super(context, …
Run Code Online (Sandbox Code Playgroud)

android listview checkedtextview

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

带按钮的自定义视图实现了OnGestureListener

在过去的几个小时里,我一直在挣扎,用google搜索谷歌的地狱,StackOverflow或其他地方的例子都不适合我,所以在这里......

我有一个自定义视图,那extends LinearLayout and implements GestureDetector.OnGestureListener.

在我的自定义布局中,我有3个按钮,每个按钮都有一个点击监听器.我想要的是能够在视图中随处执行以执行某些操作,但也可以单击按钮.

如果我在视图内部而不是通过其中一个按钮,我的onFling功能可以很好地工作.如果我扔过其中一个按钮,它会在大多数情况下执行单击,或者在某些情况下执行任何操作.

这是我的代码的相关部分:

@Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
            float velocityY) {
        if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) {
            return false;
        }
        // right to left swipe
        if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
                && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
            viewFlipper.setInAnimation(slideLeftIn);
            viewFlipper.setOutAnimation(slideLeftOut);
            viewFlipper.showNext();
            return true;

        } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
                && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
            viewFlipper.setInAnimation(slideRightIn);
            viewFlipper.setOutAnimation(slideRightOut);
            viewFlipper.showPrevious();
            return true;
        }

        return false;
    }

    @Override
    public …
Run Code Online (Sandbox Code Playgroud)

android android-view android-gesture

7
推荐指数
1
解决办法
1502
查看次数

Android:ListPreference隐藏/禁用值

我正在生成一个基于xml(entries和entryValues)的listPreference对话框.

<string-array name="listArray">
    <item>Title (A-Z)</item>
    <item>Title (Z-A)</item>
    <item>Visits (default)</item>
    <item>Date</item>
    <item>Manual</item>
</string-array> 
<string-array name="listValues">
   <item>titleASC</item>
   <item>titleDESC</item>
   <item>visitsSort</item>
   <item>createSort</item>
   <item>manualSort</item>
</string-array>
Run Code Online (Sandbox Code Playgroud)

我想基于一些其他参数隐藏/禁用一些条目(例如:手动).

我知道它应该在这个范围内:

Preference sorted = (Preference) findPreference(OPT_SORT);

        sorted.setOnPreferenceClickListener(new OnPreferenceClickListener() {
            public boolean onPreferenceClick(Preference preference) {

                if (params) {
                    What should i put here to hide/disable some of the entries?
                }

                return true;
            }
        });
Run Code Online (Sandbox Code Playgroud)

谢谢!

编辑:

我找到的最佳解决方案是加载一组不同的条目和EntryValues.在Preference类(onCreate):

ListPreference sortBy = (ListPreference) findPreference(OPT_SORT);
        if (isTabletDevice()) {
            sortBy.setEntries(getResources().getStringArray(R.array.HClistArray));
            sortBy.setEntryValues(getResources().getStringArray(R.array.HClistValues));
        }
Run Code Online (Sandbox Code Playgroud)

希望这有助于任何人!:)

android android-preferences

6
推荐指数
1
解决办法
5857
查看次数

打开小部件选择器时,系统设置强制关闭

我的用户报告当他们尝试使用我的应用程序(而不是启动器应用程序)选择窗口小部件时发生崩溃.我正在使用标准的小部件选择器代码,它始终有效,并且仍适用于所有设备,LG G2和LG G3除外.

我发现了一些类似的问题,但他们都提到了Android 2.1遭遇的崩溃,这是用空数据解决方法解决的(已在我的代码中实现).

还使用了另一种获取小部件的方法,没有官方选择器 - 这有效,但要求应用程序是BIND_APPWIDGET权限的系统应用程序.

任何人都遇到过这个问题,也许找到了解决方法或解决方案?

谢谢

这是代码:


public static void selectWidget(AppWidgetHost appWidgetHost, final Activity activity) {
        try {
            int appWidgetId = appWidgetHost.allocateAppWidgetId();
            Intent pickIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);
            pickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
            addEmptyData(pickIntent);
            activity.startActivityForResult(pickIntent, R.id.REQUEST_PICK_APPWIDGET);

        } catch (ActivityNotFoundException e) {
            activity.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(activity, activity.getString(R.string.widget_config_no_activity), Toast.LENGTH_SHORT).show();
                }
            });
        }
    }

    /**
     * This avoids a bug in the com.android.settings.AppWidgetPickActivity, which is used
     * to select widgets. This just adds empty …
Run Code Online (Sandbox Code Playgroud)

android android-widget appwidgetprovider

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