2016-08-20 36 views
0

我開始使用此庫:https://github.com/MrBIMC/MaterialSeekBarPreference。當我使用它時,我發現滑塊很小。我發現,它使用msbp_seekbar_width屬性:從Android應用程序庫中重寫資源

<SeekBar 
     android:id="@+id/seekbar" 
     android:layout_centerVertical="true" 
     android:layout_alignParentLeft="true" 
     android:layout_width="@dimen/msbp_seekbar_width" 
     android:layout_height="wrap_content" /> 

於是,我就重寫它在我的應用程序。我有nexus 5x,它應該是xxhdpi和730 dpi寬:https://design.google.com/devices/。我把

<dimen name="msbp_seekbar_width">700dp</dimen> 

dimens.xml在以下限定目錄:valuesw720dpixxhdpi。但它沒有效果。是否可以重寫庫中的資源?

回答

1

因爲該lib不依賴於您的項目 ..嘗試從該lib(如果可能)擴展使用的類到您的項目並再次重複使用..這將允許您使用來自Lib的資源並被覆蓋您項目中的資源。 所以搜索欄會有些東西一樣

<com.mycompany.myapp.widget.SeekBar 
.. 
     android:id="@+id/seekbar" 
     android:layout_centerVertical="true" 
     android:layout_alignParentLeft="true" 
     android:layout_width="@dimen/msbp_seekbar_width" 
     android:layout_height="wrap_content" /> 

附加組件: 如果不工作..你可以複製的佈局:R.layout.seekbar_view_layout到您的項目,並確保你覆蓋的方法,其中的使用:

我不知道你是針對哪一個..所以我列出了他們所有:

對於SeekBarPreferenceView.java:

@Override 
    protected void onAttachedToWindow() { 
     super.onAttachedToWindow(); 
     View view = inflate(getContext(), R.layout.seekbar_view_layout, this); 
     controllerDelegate.onBind(view); 
    } 

對於SeekBarPreference.java:

private void init(AttributeSet attrs) { 
     setLayoutResource(R.layout.seekbar_view_layout); 
     controllerDelegate = new PreferenceControllerDelegate(getContext(), false); 

     controllerDelegate.setViewStateListener(this); 
     controllerDelegate.setPersistValueListener(this); 
     controllerDelegate.setChangeValueListener(this); 

     controllerDelegate.loadValuesFromXml(attrs); 
    } 

對於SeekBarPreferenceCompat.java:

private void init(AttributeSet attrs) { 
     setLayoutResource(R.layout.seekbar_view_layout); 
     controllerDelegate = new PreferenceControllerDelegate(getContext(), false); 

     controllerDelegate.setViewStateListener(this); 
     controllerDelegate.setPersistValueListener(this); 
     controllerDelegate.setChangeValueListener(this); 

     controllerDelegate.loadValuesFromXml(attrs); 
    } 
+0

你的意思是我要創建新的類,讓它從庫中的類派生,使用新的類,它突然開始上班? –

+0

是的..我認爲這將起作用。 –

+0

不,這是一樣的。我有一個我的覆蓋偏好和兩個原始的發生,他們都看起來一樣。 –

相關問題