本文介绍了设置style =“"?android:attr/buttonBarStyle"到父级布局和样式=“?android:attr/buttonBarButtonStyle"按钮使其不可见的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遵循Android的建议,将style="?android:attr/buttonBarStyle"设置为父级布局,将style="?android:attr/buttonBarButtonStyle"设置为按钮.

所以现在我的布局是这样的:

I followed Android recommendation and set style="?android:attr/buttonBarStyle" to parent layout and style="?android:attr/buttonBarButtonStyle" to buttons.

So now my layout is something like this:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    style="?android:attr/buttonBarStyle">

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button 1"
        style="?android:attr/buttonBarButtonStyle"/>

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button 2"
        style="?android:attr/buttonBarButtonStyle"/>

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button 3"
        style="?android:attr/buttonBarButtonStyle"/>

</LinearLayout>

但是在设置样式之后,这些按钮变得不可见,尽管我仍然可以单击它们.

请告诉我出什么问题了.

其他详细信息

好吧,我刚刚创建了一个专门测试此布局的新项目,令人惊讶的是它确实有效.

因此,更确切地说,实际上,我将此布局动态添加到了另一个布局中,如下所示:

But after setting the style, these buttons have become invisible, although I can still click on them.

Please tell me what is wrong.

Additional details

Well, I've just created a new project specifically to test this layout and surprisingly it indeed does work.

So to be more precise, actually, I dynamically add this layout to another one, something like this:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:id="@+id/buttons_panel_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

    </LinearLayout>

    <!-- some other stuff -->

</LinearLayout>

代码:

LayoutInflater layoutInflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

LinearLayout buttonsPanelContainer = (LinearLayout) findViewById(R.id.buttons_panel_container);

View buttonPanelView = null;
if(chosenValueType.equals("some_type")) {

    buttonPanelView = layoutInflater.inflate(R.layout.some_buttons_panel, null);

    Button Button1 = (Button) buttonPanelView.findViewById(R.id.button1);
    Button1.setOnClickListener(this);
    Button Button2 = (Button) buttonPanelView.findViewById(R.id.button2);
    Button2.setOnClickListener(this);

} else if (chosenRawValueType.equals("another_type") {
    //...

ViewGroup insertPoint = (ViewGroup) buttonsPanelContainer;
insertPoint.addView(buttonPanelView, 0, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));

很抱歉不提起,我认为情况并非如此.

那怎么了?

Sorry to not mention it earlier, I didn't think it could be the case.

So what's wrong?

推荐答案

我只需要使用

LayoutInflater layoutInflater = LayoutInflater.from(this);

代替

LayoutInflater layoutInflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

这篇关于设置style =“&quot;?android:attr/buttonBarStyle&quot;到父级布局和样式=“?android:attr/buttonBarButtonStyle"按钮使其不可见的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-02 14:38