Setting style="?android:attr/buttonBarStyle" to parent layout and style="?android:attr/buttonBarButtonStyle" to buttons make them invisible
16,101
I just needed to use
LayoutInflater layoutInflater = LayoutInflater.from(this);
instead of
LayoutInflater layoutInflater = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
Comments
-
Vitaly Zinchenko almost 2 years
I followed Android recommendation and set
style="?android:attr/buttonBarStyle"
to parent layout andstyle="?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.
Edit: 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>
Code:
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?