如何让字幕文本在每个 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/