android - 如何在每个 Activity 中显示字幕文本

标签 android

如何让字幕文本在每个 Activity 中显示。只要写在一个地方,字幕文本就应该反射(reflect)在每项 Activity 中。如何做到这一点..请帮忙

最佳答案

这是一种方法。 首先创建一个 BaseActivity,它将由每个 Activity 扩展,每个 Activity 的选取框都相似。

public abstract class BaseWaalaMarquee extends Activity {
    FrameLayout flBaseActivity;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.base_layout_marquee);
        appendView();
    }

    private void appendView() {
        flBaseActivity = (FrameLayout) findViewById(R.id.flBaseActivity);
        View mainView = getLayoutInflater().inflate(getLayout(), null);
        flBaseActivity.addView(mainView);
    }

    public abstract int getLayout();
}

为此 Activity 创建一个名为 base_layout_marquee 的基本布局,如下所示

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/fact"
        android:layout_width="200dp"
        android:layout_height="40dip"
        android:duplicateParentState="true"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:marqueeRepeatLimit="marquee_forever"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:text="Loading... More text to see if it spans or not and want more">

        <requestFocus
            android:duplicateParentState="true"
            android:focusable="true"
            android:focusableInTouchMode="true" />
    </TextView>

    <FrameLayout
        android:id="@+id/flBaseActivity"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

现在为 Activity 创建您自己的布局,如下所示

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#f00f0f"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Your custom Layout" />
</LinearLayout>

最终创建扩展 BaseWaalaMarquee 的 Activity ,如下所示

package ram.materialnavigation.opengltravis;

import ram.materialnavigation.R;

/**
 * Created by view9 on 12/16/15.
 */
public class ExtendedBaseActivity extends BaseWaalaMarquee {

    @Override
    public int getLayout() {
        return R.layout.your_custom_layout;
    }
}

现在调用 ExtendedBaseActivity 并查看结果。 我想这对你很有帮助。干杯

关于android - 如何在每个 Activity 中显示字幕文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34307987/

相关文章:

android - 第二次打开应用程序时将数据存储在应用程序类中

android - 既然 fragment 已被弃用,在 Android API 28 中使用什么

android - 如何从 c2dm 注销?

android - 检测导航组件中的弹出

android - 向用户显示下载已在另一个 Activity 中完成的消息

android - 我可以在android中编写系统属性监听器吗?

java - 由于 setOldSku(String oldSku) 已折旧

使用套接字的 Android 点对点应用程序

android - 使用 ORM 向 Android 上的 SQLite 数据库添加大量数据

java - Android 应用程序中 key 的反黑客解决方案?