- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在我的应用程序中集成 DrawerLayout与 YouTubePlayerSupportFragment .我想使用抽屉导航菜单在主要 Activity 中加载 fragment 。
我已下载“YouTubeAndroidPlayerApi.jar”文件并放入“libs”文件夹。从 com.android.support 我还在 build.gradle(app) 文件中添加了用于 appcompact、设计和支持的依赖项:
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "24.0.1"
defaultConfig {
applicationId "com.test.xyz.testing"
minSdkVersion 19
targetSdkVersion 24
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile files('libs/YouTubeAndroidPlayerApi.jar')
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'com.android.support:support-v4:24.2.1'
testCompile 'junit:junit:4.12'
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@color/colorPrimary"
tools:context="com.test.xyz.testing.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textColor="#ffffff"
android:layout_centerInParent="true"
android:text="Relative Layout" />
<FrameLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="400dp"
android:layout_alignParentTop="true"
android:background="#333333"
></FrameLayout>
</RelativeLayout>
<ListView
android:id="@+id/listView"
android:layout_width="500dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:background="@android:color/holo_blue_dark"
>
</ListView>
</android.support.v4.widget.DrawerLayout>
package com.test.xyz.testing;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.google.android.youtube.player.YouTubeBaseActivity;
import com.google.android.youtube.player.YouTubeInitializationResult;
import com.google.android.youtube.player.YouTubePlayer;
import com.google.android.youtube.player.YouTubePlayer.OnInitializedListener;
import com.google.android.youtube.player.YouTubePlayer.Provider;
import com.google.android.youtube.player.YouTubePlayerFragment;
import com.google.android.youtube.player.YouTubePlayerSupportFragment;
import com.google.android.youtube.player.YouTubePlayerView;
public class PlayerYoutubeFrag extends YouTubePlayerSupportFragment {
private String currentVideoID = "video_id";
private YouTubePlayer activePlayer;
public static PlayerYoutubeFrag newInstance(String url) {
PlayerYoutubeFrag playerYouTubeFrag = new PlayerYoutubeFrag();
Bundle bundle = new Bundle();
bundle.putString("url", url);
playerYouTubeFrag.setArguments(bundle);
playerYouTubeFrag.init(); //This line right here
return playerYouTubeFrag;
}
private void init() {
initialize(Config.YOUTUBE_ANDROID_KEY, new OnInitializedListener() {
@Override
public void onInitializationFailure(Provider arg0, YouTubeInitializationResult arg1) { }
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {
activePlayer = player;
activePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT);
if (!wasRestored) {
activePlayer.loadVideo(getArguments().getString("url"), 0);
}
}
});
}
}
package com.test.xyz.testing;
import android.net.Uri;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import layout.SettingsFragment;
public class MainActivity extends AppCompatActivity
implements SettingsFragment.OnFragmentInteractionListener {
ListView listView;
ArrayAdapter<String> listAdapter;
String fragmentArray[] = {"Frag1", "Frag2"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
listAdapter = new ArrayAdapter<String>(this, R.layout.list_text, R.id.list_text_view, fragmentArray);
listView.setAdapter(listAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Fragment fragment;
switch (i) {
case 0:
fragment = new SettingsFragment();
break;
case 1:
fragment = null;
break;
default:
fragment = null;
break;
}
FragmentManager fragmentManager = getSupportFragmentManager();
if (fragment != null) {
fragmentManager.beginTransaction().replace(R.id.frame, fragment).commit();
}
else {
String video_id = "LHcP4MWABGY";
PlayerYoutubeFrag myFragment = PlayerYoutubeFrag.newInstance(video_id);
fragmentManager.beginTransaction().replace(R.id.frame, myFragment).commit();
}
}
});
}
@Override
public void onFragmentInteraction(Uri uri) {
}
}
String video_id = "LHcP4MWABGY";
PlayerYoutubeFrag myFragment = PlayerYoutubeFrag.newInstance(video_id);
fragmentManager.beginTransaction().replace(R.id.frame, myFragment).commit();
FATAL EXCEPTION: main
Process: com.test.xyz.testing, PID: 28303
java.lang.SecurityException: Not allowed to bind to service Intent { act=com.google.android.youtube.api.service.START pkg=com.google.android.youtube }
at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1460)
at android.app.ContextImpl.bindService(ContextImpl.java:1418)
at android.content.ContextWrapper.bindService(ContextWrapper.java:632)
at com.google.android.youtube.player.internal.r.e(Unknown Source)
at com.google.android.youtube.player.YouTubePlayerView.a(Unknown Source)
at com.google.android.youtube.player.YouTubePlayerSupportFragment.a(Unknown Source)
at com.google.android.youtube.player.YouTubePlayerSupportFragment.onCreateView(Unknown Source)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2080)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1108)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1290)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:801)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1677)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:536)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7325)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
最佳答案
您是否允许在 list 文件中访问互联网
uses-permission android:name="android.permission.INTERNET"
关于Android:使用 DrawerLayout 和 YouTubePlayerSupportFragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39979971/
这是我的 mainlayout 文件。 这是我编写与抽屉导航相关的代码的主要布局文件,还使用 include 包含工具栏。
我正在尝试使用新的 Android 架构设置带有应用栏配置的抽屉导航布局。我遇到的问题是 android studio 告诉我设置抽屉布局的方式已被弃用。 这是我的 xml 配置
最近我添加了“使用 google 登录”按钮并且工作正常,但是现在当我尝试运行该应用程序时弹出此错误,我不知道为什么。 这是完整的异常: E/AndroidRuntime: FATAL EXCEPTI
我正在尝试使用 DrawerLayout 显示两个 fragment ,滑出 fragment 具有 ListView 。我主要遵循在 developers site 上找到的示例. 我几乎一切正常,
这是我的 xml 布局文件: 但是当我启动我的 Android 应用程序时,出现错误(在运行时): E/AndroidRuntime: FATAL
我收到 DrawerLayout 无法转换的消息,因此显示错误并且我的应用程序崩溃。 我是一名新的 Android 开发人员,请帮助我。 这是我的主要 Activity : public class
我的申请遇到了奇怪的问题。我的 minSdkVersion 是 16。我的应用程序在 android lollipop 和更高版本的设备上工作正常,但在 android 4.1 和 4.4 上不工作。
我正在尝试创建一个带有透明 Toolbar(带有汉堡图标)和 NavigationView 的 DrawerLayout。 这是我的 main_activty 的布局: 这就是
这个问题已经有答案了: How to fix error: The markup in the document following the root element must be well-for
我对 DrawerLayout 有疑问。我设法做了一个抽屉,这不是问题。但不显示主要内容。 我尝试了所有可能的组合。即使我删除 fragment 主要内容仍然不显示。 有人能发现问
我需要帮助。我一直在尝试操纵它,但似乎无法完成。我正在尝试使图像适合抽屉布局。我调用页眉图像布局 (header.xml) 为: ... 为此
我对 drawerLayout 有疑问。在 drawerLayout 中,我有两个 Linearlayouts。一个是直接显示的主菜单,另一个是用抽屉滑动激活的。当我滑动抽屉菜单时,我无法点击按钮。但
我使用库制作了一个应用程序:jfeinstein10/SlidingMenu .但是这个库有点旧,我想使用 Appcompat 库。 所以我的问题是是否可以使用 drawerLayout 来滑动内容并
我正在制作一个简单的 Android 应用程序,我想制作一个 DrawerLayout 菜单。我去用的时候说必须声明抽屉布局。我检查了我的 SDK 管理器,Android 支持 jar 已安装并且是最
我已经查看了这个问题的所有其他答案,但仍然无法解决这个错误: app:id/drawerLayout) is not a sliding drawer 我在 closeDrawer 行遇到错误:
我有一个带有侧边菜单的 android 应用程序(默认的 android Activity 抽屉导航 Activity ) 我想隐藏滚动条。我为此使用了这段代码: NavigationView
我正在尝试使用全屏 DrawerLayout 实现完全透明的状态栏,就像在新的 IO19 应用程序中一样: 常规的透明状态栏效果总是有一个透明的灰色背景。 最佳答案 设置NavigationView的
我想要的是显示隐藏在左侧的栏,当用户进入布局时,想法是您知道有那个栏,而不必在操作栏上放置一个图标来表示它的存在 最佳答案 如果你想在第一次创建 Activity 时打开抽屉导航,你可以简单地做这样的
我有一个 View 与不在列表中的抽屉导航的底部对齐。 activity_main.xml
当我在打开和关闭抽屉布局上设置锁定和禁用滑动时,我无法通过按下手机上的后退按钮来关闭它,当模式未锁定时按下后退按钮导致关闭但当我将模式更改为例如: drawer_layout.setDrawerLoc
我是一名优秀的程序员,十分优秀!