我有一個名爲紅色和綠色的樣式,我有一個if語句來找出哪個應用,但我不知道代碼實際上是從java應用樣式。如何以編程方式應用樣式?
回答
我發現這隻能在從Java內部創建視圖時才能完成。如果事先在XML中定義它,則不能動態更改樣式。
這是如何回答你自己的問題? –
使用setTextAppearance(context,resid)方法,可以將樣式以編程方式應用於TextView。 (風格的resId可以在R.style.YourStyleName中找到)
這個問題沒有一種解決方案,但是這對我的用例起作用。問題是,'View(context,attrs,defStyle)'的構造函數沒有引用實際的樣式,它需要一個屬性。因此,我們將:
- 定義屬性
- 創建要使用
- 應用樣式該屬性對我們的主題
- 與屬性 創建我們認爲新的實例風格
在 'RES /值/ attrs.xml',定義一個新的屬性:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="customTextViewStyle" format="reference"/>
...
</resources>
在RES /價值/ styles.xml '我要創造我想在我的自定義的TextView使用的樣式
<style name="CustomTextView">
<item name="android:textSize">18sp</item>
<item name="android:textColor">@color/white</item>
<item name="android:paddingLeft">14dp</item>
</style>
在 'RES /價值/的themes.xml' 或' RES /價值/ styles.xml」,修改爲您的應用程序/活動主題,並添加以下樣式:
<resources>
<style name="AppBaseTheme" parent="android:Theme.Light">
<item name="@attr/customTextViewStyle">@style/CustomTextView</item>
</style>
...
</resources>
最後,在自定義的TextView,你現在可以使用構造與屬性,它會收到您的風格。在這裏,而不是總是
public class CustomTextView extends TextView {
public CustomTextView(Context context, int styleAttribute) {
super(context, null, styleAttribute);
}
// You could also just apply your default style if none is given
public CustomTextView(Context context) {
super(context, null, R.attr.customTextViewStyle);
}
}
所有這些組件,你現在可以做一個if/else語句在運行時生成的風格新的觀點,你更喜歡
CustomTextView ctv;
if(useCustomStyles == true){
ctv = new CustomTextView(context, R.attr.customTextViewStyle);
}else{
ctv = new CustomTextView(context, R.attr.someOtherStyle);
}
值得一提的是,我在不同的變體和不同的地方重複使用customTextView,但絕不要求視圖的名稱與樣式或屬性或任何內容相匹配。此外,這種技術應該適用於任何自定義視圖,而不僅僅是TextView。
對於我使用'
把這段代碼
super.setStyle(R.style.yourownstyle)
之前的setContentView()中的onCreate
- 1. 以編程方式應用樣式
- 2. 如何以編程方式將樣式應用於Textview
- 3. WPF - 如何以編程方式引用樣式中的元素
- 4. 以編程方式設置Android樣式
- 5. 以編程方式自定義樣式
- 6. 以編程方式修改樣式
- 7. 在ASP.NET MVC MasterPage中以編程方式應用樣式View
- 8. 以編程方式應用樣式來控制
- 9. 以編程方式應用樣式資源
- 10. 如何以編程方式在TableLayoutPanel上應用列和行樣式?
- 11. 如何以編程方式將多個樣式應用於單個節點
- 12. 如何在自定義控件中以編程方式應用樣式
- 13. 以編程方式將WPF樣式設置爲基線樣式
- 14. 繼承一個樣式或以編程方式找到樣式
- 15. WPF - TreeView - 如何以編程方式提取TreeViewItem(選定樣式)的樣式
- 16. 如何以編程方式刪除Drupal中的圖像樣式?
- 17. 如何以編程方式更改錨樣式約束?
- 18. 如何以編程方式切換樣式表?
- 19. 如何以編程方式更改樣式組件
- 20. 如何在Android中以編程方式設置樣式屬性?
- 21. 如何以編程方式更改ImageButton的樣式
- 22. 如何以編程方式更改ADF表格中的樣式
- 23. 如何以編程方式向Word文檔添加樣式
- 24. 如何以編程方式控制UITableViewCell樣式?
- 25. 我們如何以編程方式添加樣式?
- 26. 如何以編程方式設置textview的樣式?
- 27. 如何以編程方式設置UITableViewController的UITableViewCell樣式?
- 28. 如何以編程方式設置textView的樣式?
- 29. 如何以編程方式創建Android主題樣式?
- 30. Drupal6:如何以編程方式設置塊的樣式?
精確複製:http://stackoverflow.com/questions/2016249/how-to-programmatically-setting-style-attribute-在查看,http://stackoverflow.com/questions/3246447/how-to-set-the-style-attribute-programmatically-in-android等。請先搜索,然後再詢問 –
檢查此鏈接。 http://www.anddev.org/view-layout-resource-problems-f27/how-to-programmatically-set-button-style-t8656.html這應該有幫助 –