我已经创建了一个自定义标题栏,如本例所示
http://staticallytyped.wordpress.com/2011/03/18/android-dynamic-and-custom-title-bars/
“一个自定义的标题栏”--半路上。
在一些活动中,我想在标题栏的右侧放置一个按钮(与facebook应用程序相同)。我尝试按如下方式向视图中添加一个按钮,但它没有出现。
自定义标题栏显示如下
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.maintabhost); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.headerbar_include);
正在尝试添加按钮,如下所示。按钮最终将是一个ImageButton,并对齐到自定义标题栏的右侧-如果我让它工作。(我刚刚意识到我现在有太多的layoutparams,但这不会影响按钮的显示)
LinearLayout layout = (LinearLayout) findViewById(R.id.headerbar);
Button searchButton = new Button(this);
searchButton.setText("info");
LayoutParams layoutParams = new LinearLayout.LayoutParams
(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
searchButton.setLayoutParams(new LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
layout.addView(searchButton, layoutParams);
layout.invalidate();
我可以创建另一个已嵌入按钮的自定义标题栏,但动态解决方案会更好。
干杯
发布于 2011-04-26 21:58:33
首先,感谢你给我的博客提供链接。其次,让我看看我是否能为你回答这个问题。当你想要添加一个按钮时,你在添加另一个按钮时遇到问题的原因之一是,在那个例子中,我没有办法通过通常的渠道检索标题栏视图。因此,让我们修复它(并可能让我在这个周末写另一篇博客文章)。
从xml文件开始,添加id属性:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="horizontal"
android:id="@+id/title_complex">
<!-- Stuff -->
</LinearLayout>
下面的代码向您展示了如何在您的活动中使用该按钮(稍后您将不得不添加所有的技巧):
LinearLayout layout = (LinearLayout) getWindow().findViewById(R.id.title_complex);
layout.addView(new Button(this));
如果你看一看,标题栏中有一个非描述性的按钮(就像我说的,你必须添加你自己的风格):
然而,需要注意的是,我不能保证该按钮是否会保留在后续的活动中。我还没有调查过它,但这应该可以让你开始。如果你还有更多的问题,请随时在这里(更多眼球)或在我的博客上提问。
发布于 2011-08-03 17:43:33
https://stackoverflow.com/questions/5681081
复制相似问题