带有YouTubeBaseActivity的getSupportActionBar

时间:2016-02-23 17:20:51

标签: android android-youtube-api

我正在尝试在我的应用上播放youtube视频。我了解这可以通过将活动扩展为YouTubeBaseActivity来实现,因为我无法访问您的工具栏。

mActionBar = (Toolbar) findViewById(R.id.toolbar);
        if (mActionBar != null)
        {
            setSupportActionBar(mActionBar);
        }

        getSupportActionBar().setTitle(getResources().getString(R.string.youtubetitle));
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setHomeButtonEnabled(true);

我无法解析getSupportActionbar。是否可以通过扩展活动YouTubeBaseActivity轻松访问工具栏。

我做错了吗?

谢谢!

2 个答案:

答案 0 :(得分:34)

YouTubeBaseActivity extends Activity,(与例如AppCompatActivity相反),因此getSupportActionBar()方法不存在。

您可以尝试让您的课程扩展AppCompatActivity,并使用YouTubePlayerSupportFragment代替您通常使用YouTubePlayerView的地方。

修改

将以下内容添加到layout文件中,代替YouTubePlayerView

<fragment
    android:name="com.google.android.youtube.player.YouTubePlayerSupportFragment"
    android:id="@+id/youtube_fragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

onCreate()的{​​{1}}访问它,方法与其他静态Activity

相同
Fragment

答案 1 :(得分:0)

对于只添加带有后退按钮的工具栏,我不希望将已经完成的代码移到片段中。所以我想出了一种简单的方法。

在布局xml中,我添加了一个看起来像工具栏的TextView。这是Textview的代码。另外,您需要在可绘制文件夹中添加矢量资产(后退图标)

<TextView
 android:layout_width="match_parent"
 android:layout_height="56dp"
 android:id="@+id/actionbartitle"
 android:background="@color/colorPrimary"
 android:maxLines="1"
 android:textSize="16sp"
 android:textStyle="bold"
 android:paddingStart="@dimen/activity_horizontal_margin"
 android:paddingEnd="@dimen/activity_horizontal_margin"
 android:text="Go Back"
 android:gravity="center_vertical"
 android:drawablePadding="@dimen/padding_8"
 android:drawableLeft="@drawable/ic_back"
 android:textColor="@android:color/white"
 android:ellipsize="end"/>

并且只需在文本视图中添加onclicklistener以进行后退

val actionbarTitle = findViewById<TextView>(R.id.actionbartitle)
 actionbarTitle.setOnClickListener {
           super.onBackPressed()
        }

这就是最终结果的样子!喝杯咖啡:)

Actionbar using Textview